HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMinor

What is the performance cost of enabling "log_lock_waits" on Postgres?

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
thelog_lock_waitswhatpostgresperformancecostenabling

Problem

I am trying to understand what is the performance cost of enabling log_lock_waits on Postgres.

As per this documentation, while log_lock_waits = on:


Controls whether a log message is produced when a session waits longer than deadlock_timeout to acquire a lock. This is useful in determining if lock waits are causing poor performance. The default is off. Only superusers can change this setting.

But it doesn't say how much it hinders performance and I can't find it anywhere else.

Solution

This is essentially for free, and you should enable it in all databases unless the workload is designed to have long lock waits regularly (which would be a design bug).

These error messages are written by the deadlock detector, which is expensive to run, which is why PostgreSQL doesn't run it unless someone has to wait deadlock_timeout seconds for a lock. 1 second is very long, so this should not happen normally (database transactions should be way shorter).

But the deadlock detector has to run anyway, and these log messages are just a side effect you get for free.

Context

StackExchange Database Administrators Q#249901, answer score: 3

Revisions (0)

No revisions yet.