Re: deadlock_timeout affect on performance

From: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
To: pg noob <pgnube(at)gmail(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: deadlock_timeout affect on performance
Date: 2012-10-02 08:11:40
Message-ID: 506AA1BC.1070305@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On 01.10.2012 19:49, pg noob wrote:
> Hi all,
>
> I have a question about the deadlock_timeout in regards to performance.
> Right now we have this timeout set at its default of 1s.
> My understanding of it is that this means that every 1 second the server
> will check for deadlocks.

Not quite. It means that when a backend gets blocked, waiting on a lock,
it will check for deadlocks after waiting for 1 second. When no backend
is waiting for a lock, there are no deadlock checks regardless of
deadlock_timeout.

> What I am wondering is how much of a performance improvement we would
> expect to get if this was raised to 30 seconds?
> Is it negligible or could it be a substantial performance improvement on a
> busy system?
> We very rarely have deadlocks and waiting 30 seconds to discover one
> doesn't seem too bad.

It's almost certainly negligible. If you regularly have deadlocks, it
might even better for performance to make the timeout shorter than 1 s,
so that deadlocks are detected earlier, and backends will spend less
time deadlocked, and more time doing real work. Although I doubt it will
make any meaningful difference either way.

- Heikki

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Glyn Astill 2012-10-02 08:20:51 Re: hardware advice
Previous Message Craig Ringer 2012-10-02 04:54:38 Re: A Tale of 2 algorithms