how to trace iowait to a certain process

Hi all,

Under top command you could see some iowait output.
Is any way to locate which process(s) is causing the high percentage of iowait?

17:48:39 up 19 days, 18:54, 3 users, load average: 3.24, 3.14, 3.17
392 processes: 389 sleeping, 1 running, 2 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 3.2% 0.0% 3.6% 0.0% 0.0% 200.4% 192.0%
cpu00 0.0% 0.0% 0.0% 0.0% 0.0% 100.0% 0.0%
cpu01 1.9% 0.0% 2.9% 0.0% 0.0% 2.9% 92.0%
cpu02 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 100.0%

Thanks

iowait means the process is wating to complete an I/O and another process is ahead of it, or the I/O takes a while to complete. It is symptomatic of either poor programming or insufficient memory.

If you happen have RH running a P4 processor there is a known problem with iowait under certain confgurations. search their website for iowait.

This can usually be fixed for RH by updating to the latest kernel and/or putting the following lines into your /etc/rc.d/rc.local file:

echo 100 > /proc/sys/vm/inactive_clean_percent
echo 2 10 20 > /proc/sys/vm/pagecache

DO NOT DO THIS until you are certain what is going on.

oops:

otherwise try either of these:

iostat -d 5

sar -b

to see if it is an intermittent problem. Is your box a webserver?

Thanks Jim,

The box is Oracle DB, and the iowaits ~100% usually happen when backup agent runs. It is pretty steady. I want to be certain that it is the process which causes high iowait to have strong argument for Symantec techsupport guys