On Tue, Jul 30, 2013 at 3:52 AM, Jeison Bedoya <jeis...@audifarma.com.co>wrote:

> Hi everybody,
>
> In recent days, we have seen many processes in reaching the lock held 5000.



Do you know what queries are holding locks? Is that behaviour expected?



> At that time my machine will become sluggish and no response from the
> database. I tried to change configuration parameters, but have not found
> anything satisfactory. further in meeting log messages like the following:
> COTidleERROR: out of memory
> COTidleDETAIL: Can not enlarge string buffer container containing 0 bytes
> by 1476395004 more bytes.
>

I've never come across that message before, so someone wiser will need to
comment on that.


> COTidleLOG: incomplete message from client
> COTUPDATE waitingLOG: process 20761 still waiting for ShareLock on
> transaction 10,580,510 1664,674 ms after
>
> My machine is on linux postgres version 9.2.2, and the following settings:
>

You will want to upgrade to the latest point release (9.2.4) as there was a
serious security vulnerability fixed in 9.2.3. Details:
http://www.postgresql.org/about/news/1446/


>
> memory ram: 128 GB
> cores: 32
>
> max_connections: 900
>

I would say you might be better off using a connection pooler if you need
this many connections.


work_mem = 1024MB
>

work_mem is pretty high. It would make sense in a data warehouse-type
environment, but with a max of 900 connections, that can get used up in a
hurry. Do you find your queries regularly spilling sorts to disk (something
like "External merge Disk" in your EXPLAIN ANALYZE plans)?

Have you looked at swapping and disk I/O during these periods of
sluggishness?

Reply via email to