Re: what's the difference between "CPU I/O Wait" and "db scatter/sqenecail wait"

  • From: "Alberto Dell'Era" <alberto.dellera@xxxxxxxxx>
  • To: "qihua wu" <staywithpin@xxxxxxxxx>
  • Date: Wed, 3 Oct 2007 11:29:33 +0200

It's not "misleading" as far as you know how it works;
"db file sequential/scattered read" wait time is the time
elapsed from the instant Oracle noticed the buffer
was not in the buffer cache, and the instant it could
resume processing (approximately). So it measures
the whole impact on the "user experience" (i.e, the impact
on the response time for the user request(s) ), which is
better, IMHO, than simply reporting the time spent
waiting for the disks - that could be measured by other means
(e.g. using OS tools).

I've just remembered another article that shows
the importance of knowing exactly the meaning of
"wait time":

That article is for the "log file sync" event, but shows
very clearly that wait time is the *total* wait time, not
only the time spent waiting for the disks (note that
at the end, when the author disables logging, the time
waiting for disks is zero, yet the wait time is far from zero ;)


On 10/3/07, qihua wu <staywithpin@xxxxxxxxx> wrote:
> Hi, Alberto,
> Thanks very much for your message.
> Based on the formula you mentioned, if the cpu is always 100%busy for a long
> time. Then the time that actually wating to be scheduled will be counted as
> "wait for IO". If this is the case, then oracle will mislead us that IO is
> too busy with the fact that CPU is too busy.
>   t0 := get wallclock time [ gettimeofday() system call ]
>   issue read request to the OS (a system call)
>   ---> the time between the read is completed and oracle process get running
> (if cpu is busy, then this time maybe long) <--
>   t1 := get wallclock time
> Am I right?

Alberto Dell'Era
"the more you know, the faster you go"

Other related posts: