Re: single session I/O bandwidth

From: Nuno Souto <dbvision_at_iinet.net.au>
Date: Fri, 15 Mar 2013 15:42:29 +1100
Message-ID: <5142A6B5.2030700_at_iinet.net.au>



If readahead is configured! ;)
Don't laugh, I had someone ask me to disable it at jfs2 level...

Agreed entirely. What most folks forget is that I/O through Oracle is not just read()/write() OS calls.

An Oracle read as a result of a SELECT results in a disk read ONLY IF: - the row(s) requested is/are not in the result set cache. - the row(s) requested is/are not in a block already in memory. To ascertain either or both the above, Oracle has to use - wait for it... - CPU! It ain't coming out of thin air... With lots of rows in a block, guess what gets used up the most?

And I'm not even brushing the depths of NUMA I/O, CPU/memory bus control, etcetc.
Hardly any OS measures those effectively nowadays... Best way I've found to gauge Oracle I/O performance? Use SLOB. Next best? Use dd or orion or any of the other multitude of tools: they do I/O in a totally different way, so get ready to extrapolate like crazy!
;)

-- 
Cheers
Nuno Souto
dbvision_at_iinet.net.au


On 15/03/2013 4:04 AM, Kevin Closson wrote:

> not if it is in the buffered path..if buffered then OS block readahead will kick in.
>
> If you want to know what Oracle can do with storage, use Oracle. Not synthetic I/O tools like dd. (not preaching at you here, Noons. Just reminding the list)
>
> http://kevinclosson.wordpress.com/2013/03/03/my-oaktable-world-2012-video-session-is-now-online/
>
> I monitored this thread and only one participant chimed in on the real problem which is CPU. Oracle can do I/O without burning CPU with CALIBRATE. Any other method for driving physical I/O will burn CPU. Even count(*) has memory loads of the block hear to get the slot count. If not parallel, even a count(*) will be CPU-bound.
>
>
>
>
> ________________________________
> From: Nuno Souto <dbvision_at_iinet.net.au>
> To: oracle-l_at_freelists.org
> Sent: Tuesday, March 12, 2013 2:59 AM
> Subject: Re: single session I/O bandwidth
>
> and if you use dd, don't forget to set bs, ibs or obs to 8K or whatever
> the db block size is..
> Otherwise you'll be measuring times for 512 byte I/O.
>
-- http://www.freelists.org/webpage/oracle-l
Received on Fri Mar 15 2013 - 05:42:29 CET

Original text of this message