But none of this explains why a 4-disk raid 10 is slower than a 1 disk system.  
If there is no write-back caching on the RAID, it should still be similar to 
the one disk setup.

Unless that one-disk setup turned off fsync() or was configured with 
synchronous_commit off.  Even low end laptop drives don't lie these days about 
a cache flush or sync() -- OS's/file systems can, and some SSD's do.

If loss of a transaction during a power failure is OK, then just turn 
synchronous_commit off and get the performance back.  The discussion about 
transaction rate being limited by the disks is related to that, and its not 
necessary _IF_ its ok to lose a transaction if the power fails.  For most 
applications, losing a transaction or two in a power failure is fine.  
Obviously, its not with financial transactions or other such work.
  

On Jul 8, 2010, at 2:42 PM, Craig James wrote:

> On 7/8/10 2:18 PM, timothy.noo...@emc.com wrote:
>> How does the linux machine know that there is a BBU installed and to
>> change its behavior or change the behavior of Postgres? I am
>> experiencing performance issues, not with searching but more with IO.
> 
> It doesn't.  It trusts the disk controller.  Linux says, "Flush your cache" 
> and the controller says, "OK, it's flushed."  In the case of a BBU 
> controller, the controller can say that almost instantly because it's got the 
> data in a battery-backed memory that will survive even if the power goes out. 
>  In the case of a non-BBU controller (RAID or non-RAID), the controller has 
> to actually wait for the head to move to the right spot, then wait for the 
> disk to spin around to the right sector, then write the data.  Only then can 
> it say, "OK, it's flushed."
> 
> So to Linux, it just appears to be a disk that's exceptionally fast at 
> flushing its buffers.
> 
> Craig
> 
>> 
>> -----Original Message-----
>> From: pgsql-performance-ow...@postgresql.org
>> [mailto:pgsql-performance-ow...@postgresql.org] On Behalf Of Craig James
>> Sent: Thursday, July 08, 2010 4:02 PM
>> To: pgsql-performance@postgresql.org
>> Subject: Re: [PERFORM] performance on new linux box
>> 
>> On 7/8/10 12:47 PM, Ryan Wexler wrote:
>>> 
>>> 
>>> On Thu, Jul 8, 2010 at 12:46 PM, Kevin Grittner
>>> <kevin.gritt...@wicourts.gov<mailto:kevin.gritt...@wicourts.gov>>
>> wrote:
>>> 
>>>     Ryan Wexler<r...@iridiumsuite.com<mailto:r...@iridiumsuite.com>>
>>>     wrote:
>>> 
>>>> One thing I don't understand is why BBU will result in a huge
>>>> performance gain.  I thought BBU was all about power failures?
>>> 
>>>     Well, it makes it safe for the controller to consider the write
>>>     complete as soon as it hits the RAM cache, rather than waiting for
>>>     persistence to the disk itself.  It can then schedule the writes
>> in
>>>     a manner which is efficient based on the physical medium.
>>> 
>>>     Something like this was probably happening on your non-server
>>>     machines, but without BBU it was not actually safe.  Server class
>>>     machines tend to be more conservative about not losing your data,
>>>     but without a RAID controller with BBU cache, that slows writes
>> down
>>>     to the speed of the rotating disks.
>>> 
>>>     -Kevin
>>> 
>>> Thanks for the explanations that makes things clearer.  It still
>> amazes
>>> me that it would account for a 5x change in IO.
>> 
>> It's not exactly a 5x change in I/O, rather it's a 5x change in
>> *transactions*.  Without a BBU Postgres has to wait for each transaction
>> to by physically written to the disk, which at 7200 RPM (or 10K or 15K)
>> means a few hundred per second.  Most of the time Postgres is just
>> sitting there waiting for the disk to say, "OK, I did it."  With BBU,
>> once the RAID card has the data, it's virtually guaranteed it will get
>> to the disk even if the power fails, so the RAID controller says, "OK, I
>> did it" even though the data is still in the controller's cache and not
>> actually on the disk.
>> 
>> It means there's no tight relationship between the disk's rotational
>> speed and your transaction rate.
>> 
>> Craig
>> 
> 
> 
> -- 
> Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-performance


-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to