average multiblock read size

  • From: kyle Hailey <kylelf@xxxxxxxxx>
  • To: ORACLE-L <Oracle-L@xxxxxxxxxxxxx>
  • Date: Fri, 27 May 2011 15:32:33 -0700

I wanted to find out what the average multiblock I/O size.  Based on

bytes = "physical read bytes"
total data blocks read = bytes / database block size
single block reads = "physical read IO requests"  - "physical read total
multi block requests"
blocks read via multi-block  reads = total data blocks  read - single block
reads

It seems like

average multi block read size =blocks read via multi-block  reads  / multi
block read requests
            = ( "physical read bytes"/ (db block size))- ("physical read
total IO requests" -
" physical read total multi block requests"))/ " physical read total multi
block requests"


but wondering if this is right and it seems a little convoluted.


My end goal is to match up I/O latencies off  disk with I/O wait events.
Sometimes "db file sequential reads"  are slow, sometimes it's the "db file
scattered reads" and sometime its "direct path read". If each of these has
different I/O sizes then with dtrace I can match up the I/O sizes and
latencies to the wait event. I'm thinking it's better to just read the I/O
sizes out of Active Session History per I/O wait type. These I/O sizes will
be skewed to the higher sized, but at least should show the max size and
give some idea about size variation.

PS anyone know what kinds of I/O is included in "physical read total bytes"
- seems to include data block reads , control file reads and redo reads


- Kyle
http://dboptimizer.com

Other related posts: