2007/6/29, Richard Huxton <[EMAIL PROTECTED]>:

Ho Fat Tsang wrote:
> Hi Richard,
>
>    I've tested again according your suggestion. I noticed that for each
> time the pgsql slow down, there is a short period a process called
> "pdflush"
> eating up lot of I/O. I've goolgled and know it is a process for writing
> dirty pages back to the disk by the Linux kernel. I will have further
> investigation on this process with my limited knowledge on Linux kernel.

Well, pdflush is responsible for flushing dirty pages to disk on behalf
of all processes.

If it's doing it every 3 minutes while checkpoints are happening every
30 seconds then I don't see how it's PG that's responsible.

There are three possibilities:
1. PG isn't actually checkpointing every 30 seconds.
2. There is a burst of query activity every 3 minutes that causes a lot
of writing.
3. Some other process is responsible.


Exactly ! you are right, finally i have found that the root cause for this
is the application that use PG. There is memory leak using MappedByteBuffer
(writing in java), it leads high I/O loading and finally reaches the ratio
that pdflush is being kicked start in the kernel.

Thank you for helping a lot in digging out this issue ! learn much for you
guys !

  Correct me if i am wrong. It seems postgresql 8.0 does not bundle
> auto-vacuum by default. So all vacuum and analyse are done manually ? So
> what i have tested related to vaccuum is running auto-vacuum (a
executeable
> located in /bin) parallel under normal production load but it seems
won't
> help.

Can't remember whether 8.0 had autovacuum bundled and turned off or not
bundled at all. If it's not running it can't be causing this problem
though.

--
   Richard Huxton
   Archonet Ltd

Reply via email to