pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Craig James <craig_james@emolecules.com>
To: Timothy.Noonan@emc.com
Cc: pgsql-performance@postgresql.org
Subject: Re: performance on new linux box
Date: Thu, 08 Jul 2010 14:42:06 -0700
Message-ID: <4C36462E.1080405@emolecules.com> (raw)
In-Reply-To: <B9A709F368FAAF4DB4B33870F72A141D0106C0E8@CORPUSMX30A.corp.emc.com>
References: <AANLkTinVrej5r_uF3As3mF8BW4CYgLGiw2-v2HORsqjM@mail.gmail.com>
	<4C3532CC.6070601@squeakycode.net>
	<AANLkTiloWDARpJw6xEZwuvSt_iVySIplr0Wg4zThXMPK@mail.gmail.com>
	<4C3591F40200002500033219@gw.wicourts.gov>
	<AANLkTilA1_-XNBcjpVLnbuMndC02PSzsQijzK3gNQc3c@mail.gmail.com>
	<4C35A23B0200002500033220@gw.wicourts.gov>
	<AANLkTilCjMHlvYuHCu5Hf7nd4q5C50Cu5NhTS55F3St9@mail.gmail.com>
	<4C360677.1090608@emolecules.com>
	<AANLkTiny431UE-qThjeJuGRst2gR0lkdn1UKKTSWfvV9@mail.gmail.com>
	<AANLkTin24rAdlEMpohzAVdBXuI37DPofZrpnKxiQLPgL@mail.gmail.com>
	<95971335.20100708211351@erwied.eu>
	<AANLkTinsne2dhyxzXBb4KMVM_7yixWaUfVtG-WBPxMIq@mail.gmail.com>
	<488953776.20100708213233@erwied.eu>
	<AANLkTimx5Ug2iAQLv3l5scscART_6fm-wCl10k1nWyti@mail.gmail.com>
	<4C35E4CA020000250003327E@gw.wicourts.gov>
	<AANLkTino2ep4VyJDA9PVV6FObxHnBlLX3O9z8q19PzfN@mail.gmail.com>
	<4C363CAE.7010401@emolecules.com>
	<B9A709F368FAAF4DB4B33870F72A141D0106C0E8@CORPUSMX30A.corp.emc.com>

On 7/8/10 2:18 PM, Timothy.Noonan@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-owner@postgresql.org
> [mailto:pgsql-performance-owner@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.Grittner@wicourts.gov<mailto:Kevin.Grittner@wicourts.gov>>
> wrote:
>>
>>      Ryan Wexler<ryan@iridiumsuite.com<mailto:ryan@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
>




view thread (50+ messages)  latest in thread

Message-ID: <4C36462E.1080405@emolecules.com>
Permalink:  ../4C36462E.1080405@emolecules.com/
Also on:    postgresql.org/message-id/4C36462E.1080405@emolecules.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: craig_james@emolecules.com, Timothy.Noonan@emc.com
  Subject: Re: performance on new linux box
  In-Reply-To: <4C36462E.1080405@emolecules.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox