Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: what's the difference between "CPU I/O Wait" and "db scatter/sqenecail wait"

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

From: Alberto Dell'Era <alberto.dellera_at_gmail.com>
Date: Wed, 3 Oct 2007 11:29:33 +0200
Message-ID: <4ef2fbf50710030229u3d161c9cq81ad27b74f843ad3@mail.gmail.com>


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":

http://kevinclosson.wordpress.com/2007/07/21/manly-men-only-use-solid-state-disk-for-redo-logging-lgwr-io-is-simple-but-not-lgwr-processing/

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 ;)

HTH
Alberto

On 10/3/07, qihua wu <staywithpin_at_gmail.com> 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"
--
http://www.freelists.org/webpage/oracle-l
Received on Wed Oct 03 2007 - 04:29:33 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US