Re: DBWR performance

From: Mladen Gogala <gogala.mladen_at_gmail.com>
Date: Wed, 9 May 2012 12:47:04 +0000 (UTC)
Message-ID: <pan.2012.05.09.12.47.03_at_gmail.com>



On Tue, 08 May 2012 11:28:56 -0700, andrew.protasov wrote:

> Yes, I remember and will try it, but not holding my breath for it to
> help in synch io case. As Oracle claims, they do not use FS write
> caching, so each 16 block write from DBWR is actual physical disk write.
> There are no multiple requests for FS to re-order. Asynch io may improve
> though.
>
> Andrew

The problem is that those requests are rather small. And there is another level, between FS and disk, when IORB (I/O request blocks) are actually queued. The software that does sorting of the I/O requests, to make sure that adjacent blocks are written together, is IO scheduler or "elevator". Oracle recommends deadline scheduler, which is not the default. The default is "completely fair scheduler", which has a goal of making sure that every process gets its fair share of the I/O pipe, exactly the opposite of what you want to achieve here. The recommendation is stated in the MOS document 1352304.1.
IO scheduler will help you only if there is a queue of I/O requests, waiting on the disk to service them which is not the case here. Your problem is that DBWR doesn't launch enough of I/O requests to come even close to saturating the pipe. The problem may also be coming from the Linux side. I have never liked Linux implementation of the asynch I/O. You may try with DBWR_IO_SLAVES to see how Oracle's own implementation works.

-- 
http://mgogala.byethost5.com
Received on Wed May 09 2012 - 07:47:04 CDT

Original text of this message