pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Iulian Dragan <iulian_dragan@yahoo.com>
To: Peter Childs <peterachilds@gmail.com>
Cc: Postgresql Performance <pgsql-performance@postgresql.org>
Subject: Re: Slow Inserts on large tables
Date: Fri, 3 Oct 2008 03:09:37 -0700 (PDT)
Message-ID: <552000.39549.qm@web52909.mail.re2.yahoo.com> (raw)
In-Reply-To: <a2de01dd0810030147m4b2d302aj49e1bb38146d0523@mail.gmail.com>

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@gmail.com> wrote:
From: Peter Childs <peterachilds@gmail.com>
Subject: Re: [PERFORM] Slow Inserts on large tables
To: 
Cc: "Postgresql Performance" <pgsql-performance@postgresql.org>
Date: Friday, October 3, 2008, 9:47 AM

2008/10/3 Peter Eisentraut <peter_e@gmx.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

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



      

view thread (5+ messages)  latest in thread

Message-ID: <552000.39549.qm@web52909.mail.re2.yahoo.com>
Permalink:  ../552000.39549.qm@web52909.mail.re2.yahoo.com/
Also on:    postgresql.org/message-id/552000.39549.qm@web52909.mail.re2.yahoo.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: iulian_dragan@yahoo.com, peterachilds@gmail.com
  Subject: Re: Slow Inserts on large tables
  In-Reply-To: <552000.39549.qm@web52909.mail.re2.yahoo.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