Christo Kutrovsky wrote,on my timestamp of 14/03/2006 8:35 AM:
In my opinion, the biggest problem with "%WIO" (wait io) is the confusion it creates. Same thing with "%util" from iostat.
Many people are either following the rule of thumb that WIO is idle time, others are thinking that it's the cpu needed to do IO.
The biggest problem for me is that CPU busy measures the percentage of time a CPU is doing process work while wait io measures the relative time processes are waiting in a list for an event to clear. The two can never meet properly by their very nature.
If we have normal io, then wait io is just the time a process is sitting in the io list. Which can potentially be a lot compared to the time processes are actually running.
If we have aio, then in theory there should be much less wait io: a process is free to continue executing until such time as it absolutely needs the io to complete; in which instance it ends up in the wait io list like any other process. However, unless the process is prepared to do this, we *still* end up with high wait io...
In theory, Oracle's dbwr is supposed to be able to initiate other io requests while wating for any given one to complete. In practice there seems to be an empyrical limit to this, not very clear why. And that's when we need an additional dbwr. Without aio we always do need additional ones.
-- Cheers Nuno Souto in sunny Sydney, Australia dbvision@xxxxxxxxxxxx -- http://www.freelists.org/webpage/oracle-l