Guidance on Calculating max_locks_per_transaction for a Highly Partitioned Environment

From: Vivek Gadge <vvkgadge56(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Guidance on Calculating max_locks_per_transaction for a Highly Partitioned Environment
Date: 2026-06-29 17:55:59
Message-ID: CAK+uD7g=EE4ypAsuF8L9ZQ3FSuRD-YJ8nOkkyDnSooA_jidycQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello Team,

I am looking for guidance on determining an appropriate value for the
max_locks_per_transaction parameter in our PostgreSQL 17.6 production
environment.

Environment has the following characteristics:

PostgreSQL Version: 17.6
max_connections = 1500
Daily partitioning strategy
Large OLTP workload with transactions that may access multiple
partitions

Occasionally, we encounter the following error:

ERROR: out of shared memory
HINT: You might need to increase max_locks_per_transaction.

We understand that the shared lock table is sized based on
max_locks_per_transaction, max_connections, and max_prepared_transactions.
However, we have not found any guidance on how to estimate an appropriate
value for environments with a large number of partitions and indexes.

We would appreciate guidance on the following:

Is there a recommended methodology or formula for estimating
max_locks_per_transaction.

Our objective is to determine an appropriate value based on workload
characteristics rather than increasing the parameter through trial and
error.

Thanks

Vivek Gadge.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message sa sa 2026-06-30 16:17:21 Postgresql Wal archive and Barman setup
Previous Message Israel Brewster 2026-06-26 19:35:55 Re: PostgreSQL 15-->18 slowdown?