Re: DBWR performance
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.comReceived on Wed May 09 2012 - 07:47:04 CDT