Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: os io unit , db block size relation
utkanbir wrote:
> statfs call against the filesystems which oracle data resides returns
> 512 as the optimal block size.
>
On ocfs you are not buffering so, I believe, the value you read in f_bsize is the physical block (512 byte). (You are accessing the DMA "layer" directly).
> When i create a directory in one of the ocfs file systems , its size
> is 32K.
>
> sar -d reports some values in blks/s .
>
> I want to connect all these info but i cant. Here is my questions:
>
> 1. How can i find the os io unit ? How much data does (not only in blocks ,
> but also in bytes) the os transfer in each read ?
>
You are stuck to PAGE_SIZE for buffered i/o: 4k for x86 architectures (even x86-64), 16k (by default) on ia64.
> 2. Since i use ocfs which use direct io (no os buffering) , can i say
> that all database ios are 16kb? (Since this is db block size) Or are
> all ios issued by db server 512 bytes?(Since statfs returns 512 as the
> optimal block size)Or are all ios issued by db server 32kb. (this is
> the ocfs block size)
>
Since it is not buffered you are not using the virtual memory machine (or so I read) so every oracle i/o is made in a single operation. (Even the read-ahead is not triggered).
> 3. I want to monitor the raid subsytem by comparing the disk io done
> by dbserver and os. I use v$filestat oracle table to get the number of
> disk reads in block , than sar -d or iostat but how can i understand
> what os block exactly mean in sar and iostat outputs? 16kb, 512bytes
> or 32kb?
>
>
sar and iostat show you reads and writes as sector units so 512 bytes (kernel from 2.2 on).
-- Fabrizio Magni fabrizio.magni_at_mycontinent.com replace mycontinent with europeReceived on Tue Sep 14 2004 - 09:14:12 CDT