On 7/8/10 12:47 PM, Ryan Wexler wrote:
> On Thu, Jul 8, 2010 at 12:46 PM, Kevin Grittner
> <Kevin(dot)Grittner(at)wicourts(dot)gov <mailto:Kevin(dot)Grittner(at)wicourts(dot)gov>> wrote:
> Ryan Wexler <ryan(at)iridiumsuite(dot)com <mailto:ryan(at)iridiumsuite(dot)com>>
> > 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.
> 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.
In response to
pgsql-performance by date
|Next:||From: Ryan Wexler||Date: 2010-07-08 21:02:50|
|Subject: Re: performance on new linux box|
|Previous:||From: Kevin Grittner||Date: 2010-07-08 20:22:07|
|Subject: Re: Need help in performance tuning.|