Re: Context switch storm - Mailing list pgsql-performance

From Cosimo Streppone
Subject Re: Context switch storm
Date
Msg-id 454B3EDC.3090502@streppone.it
Whole thread Raw
In response to Re: Context switch storm  (Richard Huxton <dev@archonet.com>)
List pgsql-performance
Richard Huxton wrote:

> creimer@brturbo.com.br wrote:
>> Hi,
>>
>> We've migrated one of our servers from pg 7.4 to 8.1 and from times
>> to times (4 hours) the server start doing a lot of context switching
>> and all transactions become very slow.
>>
>> The average context switching for this server as vmstat shows is 1
>> but when the problem occurs it goes to 250000.
>
> You'll tend to see it when you have multiple clients and most queries
> can use RAM rather than disk I/O. My understanding of what happens is
> that PG requests data from RAM - it's not in cache so the process gets
> suspended to wait. The next process does the same, with the same result.
>   You end up with lots of processes all fighting over what data is in
> the cache and no-one gets much work done.

Does this happen also with 8.0, or is specific to 8.1 ?
I seem to have the same exact behaviour for an OLTP-loaded 8.0.1 server
when I raise `shared_buffers' from 8192 to 40000.
I would expect an increase in tps/concurrent clients, but I see an average
performance below a certain threshold of users, and when concurrent users
get above that level, performance starts to drop, no matter what I do.

Server logs and io/vm statistics seem to indicate that there is little
or no disk activity but machine loads increases to 7.0/8.0.
After some minutes, the problem goes away, and performance returns
to acceptable levels.

When the load increases, *random* database queries show this "slowness",
even if they are perfectly planned and indexed.

Is there anything we can do?

--
Cosimo


pgsql-performance by date:

Previous
From: Richard Huxton
Date:
Subject: Re: Context switch storm
Next
From: creimer@brturbo.com.br
Date:
Subject: Re: Context switch storm