From: | Iulian Dragan <iulian_dragan(at)yahoo(dot)com> |
---|---|
To: | Peter Childs <peterachilds(at)gmail(dot)com> |
Cc: | Postgresql Performance <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Slow Inserts on large tables |
Date: | 2008-10-03 10:09:37 |
Message-ID: | 552000.39549.qm@web52909.mail.re2.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Peter,
(please take this with a pinch of salt as I am no expert)
Here is a possible scenario:
Each of your checkpoints takes 90 seconds or more (you told it so with the checkpoint_completion_target).
If your insert fills 3 checkpoint segments (48 megs ) in less than 90 seconds then a new checkpoint request is issued. And maybe a third one, and so on. I imagine that this can flood the disk cache with write requests at some point although I can't explain how.
Have a look at the log, see the interval between the checkpoint requests and try to make this (a lot) larger than the checkpoint duration.
Start by increasing your checkpoint_segments (to, say, 16). If this doesn't work, maybe the timeout is too short, or the 90 seconds target to generous.
Regards,
Iulian
--- On Fri, 10/3/08, Peter Childs <peterachilds(at)gmail(dot)com> wrote:
From: Peter Childs <peterachilds(at)gmail(dot)com>
Subject: Re: [PERFORM] Slow Inserts on large tables
To:
Cc: "Postgresql Performance" <pgsql-performance(at)postgresql(dot)org>
Date: Friday, October 3, 2008, 9:47 AM
2008/10/3 Peter Eisentraut <peter_e(at)gmx(dot)net>:
> Peter Childs wrote:
>>
>> I have a problem where by an insert on a "large" table will
sometimes
>> take longer than usual.
>
>> I think the problem might have something to do with checkpoints,
>
> Then show us your checkpointing-related parameters. Or try to set them to
a
> lot higher values so checkpoints happen more rarely and see if that makes
a
> difference.
>
>
More often or less often?
I've currently got them set to
checkpoint_segments = 3
checkpoint_timeout = 180s
checkpoint_completion_target = 0.5
after reading that doing more smaller checkpoints might make each
checkpoint work quicker and hence less of a performance hit when they
actually happen.
Regards
Peter
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-10-03 12:19:51 | Re: Slow Inserts on large tables |
Previous Message | Peter Childs | 2008-10-03 08:47:38 | Re: Slow Inserts on large tables |