Hi Greg, thanks for the reply!

On Tue, Dec 15, 2009 at 10:52 PM, Greg Smith <g...@2ndquadrant.com> wrote:

> Michael Clark wrote:
>
>>
>>  Secondly, I ask about an alternative solution to the corruption problem
>> because with preliminary testing we have seen a significant degradation in
>> performance.  So far the two operations we have noted are database creation
>> and database restores.
>>
>
> For the restore case, you might get a good sized boost in performance
> without introducing a risk of corruption by turning off the
> synchronous_commit parameter.  That will put you in a position where you can
> have a committed transaction not actually be on disk if there's a crash or
> sudden power outage, but you won't get an actual corruption in that case.
>  So fsync_writethough plus synchronous_commit=off should be no less safe
> than what you've got now, but probably not as fast as what you're used to.
>  As already pointed out, there is a trade-off here you can't bargain with:
>  you can either have your data completely safe, or you can execute quickly,
> but you can't do both.  Robust data integrity slows things down and there's
> little you can do about it without buying hardware targeted to improve on
> that.
>
>
That sounds like an interesting setting, I will look into that further,
thanks!


> The database creation issue just came up on one of the lists here the other
> day as being particularly slow in the situation you're in, and that
> parameter change doesn't help there.  There's been some design change
> suggestions around that to improve the situation, but you're not likely to
> see those in the server code for a year or more.
>
>
That is a lot less of a problem, for us anyways.  Faster (and safe) is
always better though.  The real concern is explaining why a 2 second restore
now takes almost 4 minutes!
Not that there is anything that can be done (except for some tuning), but
that is not really an issue for here.


>  I should note here that we have not tuned PG at all.
>>
> You could probably see a good sized performance increase just from
> increasing checkpoint_segments a bit from its default (3).  Since it sounds
> like you're trying to keep your product's disk space footprint under
> control, increasing that to around 10 would probably as high as you want to
> go.  You can't really increase shared_buffers a lot on your platform lest
> your users get stuck with weird problems where the server won't start, from
> what I hear OS X is fairly hostile to the kernel adjustments you need to do
> in order to support that.
>
> There's a general intro to things you might tune in the postgresql.conf at
> http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
>
> None of those are going to help you out with slow database creation, you
> might be able to pull down the restore times by tweaking some of the
> parameters there upwards.  A large number of the tunables recommend to tweak
> there mainly impact query execution time.
>

Thanks for those tips as well.  Much appreciated,

Michael.

Reply via email to