I am getting oracle blocked process on the results of vmstat b column. The run queue is fine and but the blocked process are increasing . When I checked with the forums i found out that it waiting for an I/O.
Hardware: IBBM blade
SAN - Netapp
The server is OEL 5 with Oracle 11g running on it. There is no local disk on the server everything configured as SAN with multipathing. Also along with the /boot and / partition are connected to the SAN.
Also experiencing the issues with the cpu utilization as well and the cpu utilization become 100%. And it causes for the server load to reach 15 , 25, 30. The kernel parameters are set it up as recommend by the Oracle.
This is causing issues for Oracle query. Is there any recommendation I can use to improve the performance?
The numbers in vmstat alone won't help you, as they depend on workload. As far as I know, the values won't tell you if your system or processes are working efficiently. You may have a busy process or technical issue causing a performance bottleneck, or perhaps you are overloading the machine, have run out of physical memory, etc., etc.
The bi and bo column in vmstat shows the data transfer between virtual memory and block devices. I don't see how these numbers could possibly tell you that something is wrong. Perhaps your database is performing a lot of full table scans or the DB cache is too small, etc. But then again, it depends on your tasks and workload.
I suggest to find out which processes are causing the most I/O and then analyze the processes. Process that are waiting for I/O are typically in "D" state. What is your output of the following:
# ps -eo state,pid,cmd | grep "^D"
If you suspect that disk access is the issue, use the pid(s) of the previous command as following to see which files are affected.