Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRYv6-002T9A-2w for pgsql-admin@arkaria.postgresql.org; Mon, 25 May 2026 17:16:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wRYv4-001h4Y-0o for pgsql-admin@arkaria.postgresql.org; Mon, 25 May 2026 17:16:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRYv3-001h4Q-2q for pgsql-admin@lists.postgresql.org; Mon, 25 May 2026 17:16:50 +0000 Received: from mail-dl1-x1230.google.com ([2607:f8b0:4864:20::1230]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wRYv2-00000001Nuo-3kYe for pgsql-admin@lists.postgresql.org; Mon, 25 May 2026 17:16:50 +0000 Received: by mail-dl1-x1230.google.com with SMTP id a92af1059eb24-1334825de43so8487702c88.0 for ; Mon, 25 May 2026 10:16:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779729406; cv=none; d=google.com; s=arc-20240605; b=RuM94OXAgqGTPgjgvkjLIL0AOfMwuv0wMdiBtGBxDBC/SRZPfvvjr/FYgZCo4SSCDR pA+S9mpTc5YIozIOTsFdeIz+ef+OZ+sWw8RbN10lwRaprfxZekcSlQynD6Y/voKFDz/d pFShct0yymtpOGnPVMPQo7DXdwemJO4s2c/yTU7X0L8340myuisiz57HCStDqEfzLxYh +vpCc85BP7JFDqoazYjBhjZk0FdTvOOBk1LgEa6zHUQv4mzho0LFQdKsAXPjOoFNxnjZ j9Lp7G6U91dc+MdI/Txv5BgShqeoZg4ng8PTukWWwmT6nTdtfw4KQLJeVhOzWVkgIP14 oiQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=+o5nETRRA39ffGXHp3DxewXjsUhOKf40WzEXD1Svb1s=; fh=druxZHa2fk4e6MLibibygn9AWWgeaAPo4m8Gpo2MBXU=; b=iTbTkYnpzvS+IJHFq8pAQukjdLwVi39dNkWu9hfSnhHKAjc7MX9FtnJqG8lyNpB6bq kvvPTKy5Xm0Q7BJWpQoCavHlhrraNU1avxg4bVR9tOKgWXvNlNmPg+EbhxtDtW5rtXdU vHu6PvLal59h9KCMXqPiinuoNaUDj/RHUnwa8hhon2LM/PTTRoMwf0rMjxfjTlin3B0j Fzu9vhQQ5dzWqPimpt76+rhHYNReYhw2tIrAmtHeZFhW7FV7GTP3/EMzRjpUfFLWjZBB rsP/h+VSiArN9QpKWwSzCY2VIwqiShqvW6OcI13Xh/FjCSx32ilpluJEO5ZXzY+N6B0T OsIg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779729406; x=1780334206; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=+o5nETRRA39ffGXHp3DxewXjsUhOKf40WzEXD1Svb1s=; b=iS08+LkqC+BFdcxXT1RwLFlHbsC6UqHbHbL3EnrpUSmAVg7bAH9B1pctK+DxlC5gkt c/sLaijUcl60KA1ngSZ0P3fqQoKPH/EnCHAhatliACSZ6X3zn4nKdbPAICvTg4t8H/QM iVtAU7hiDajMyLz/G7a3ZzLeli7IMhSC8OgN26OrU1S/fgHh4We/d8M+YxlAmu5rzKdF h3c97zAGl7WZpYU3LfnRqlo7MkMso56VlbsEqPC/8Z+cY/paD2s8cuuO7L7NnthJID6f JdmxmtWng4RNM6EcIZbFCve1IqeOk1eAXth0NJmvKH5l3SvftHKOPIOaH0xKCCx7ggyM T1BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779729406; x=1780334206; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+o5nETRRA39ffGXHp3DxewXjsUhOKf40WzEXD1Svb1s=; b=l2kw+1E23cFd30Lw00O2BQnE6CMQNhUhxSDB2mqU+k3xXkJhZUMhiFeIfAvPIP3d/o mMNrK7NIjz48LDX/pdqm647HVWBEb3TEOxL5pVbDX+bmfvgIQ7lN88PJayQf6UL0Kr5a Cb3xCmkESP+f+OKwvO9XC+mHkdNdmmkzpteCdHPTEO1jj1k1dCiIA2zTyRtSbsFyp2fr YOyeX4r9gl5hJ6LWitdgZ71wPrFAD6f1EMeXBUYdEF7asWTFugJKPDsRROpZvFnv7MAn SuCeO90w1GeJ5EHXFy9X4sRHlwuh26M6cOf9phKrMzxegxa5eLeF6++b67YunPOlByZj SDTw== X-Gm-Message-State: AOJu0YwLsHLmxYea4vx70h+e0lxkR8DusyCsRXmcp5lkcEIGJDMYTGJ+ V79NrbynHMEStH26MoBPorHK/0ew3UhcxZ+AEiy/KI7s+vQ9EtTsoL2954UP9MSWtOFh0DIbLoW PrEIZYVSFwYHx4kbUBxtBVqUQgP9U16jHtW6M X-Gm-Gg: Acq92OENnrPruM/METMMOAljo5bg1FSEnSxje+kL4GQhy0qMXFFOZ8mvoEfhev988j6 4qgAYmQDdIspGch8QPrs9dmqmKe019Habd/BkHFHsUZ9OLrDyTlN4+b4wf1Ew0HIJ+K2sx3rhEJ EyAHOifkrZTvN+1e/5h9eBdPv3i8N4WqEvso+dmPqxWzLqBVU42lKm5hIvGKXv7pc0I4iNxbr4q sqSTc3wcq5rtEF/zug1KoeEJG/mBM50rzj4LiSzcktJT1Jo87Bn1Tx1haCl15hiqTapaJPwr4/J XkWawg== X-Received: by 2002:a05:7022:671f:b0:130:c9cc:3395 with SMTP id a92af1059eb24-1365fb408bfmr4775385c88.29.1779729406059; Mon, 25 May 2026 10:16:46 -0700 (PDT) MIME-Version: 1.0 From: mahamood hussain Date: Mon, 25 May 2026 22:46:33 +0530 X-Gm-Features: AVHnY4LT2PNSfAbNeebpSda-7u5TwAnBEuQON_XzxodBVwgyhoRBwY90nMJz0bg Message-ID: Subject: Request for Guidance on Recommended ulimit/Open File Settings for PostgreSQL 17 Multi-Cluster Environment To: Pgsql-admin Content-Type: multipart/alternative; boundary="0000000000000b69130652a78bbc" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000b69130652a78bbc Content-Type: text/plain; charset="UTF-8" Hi Team, We are currently migrating our database environments from IBM Db2 to PostgreSQL 17.6 on AlmaLinux and would like some guidance/best practices around recommended ulimit (open file descriptor) settings for PostgreSQL. Environment details: - OS: AlmaLinux - PostgreSQL Version: 17.6 - Deployment Model: Multiple PostgreSQL clusters (~10 clusters) running on the same server - All PostgreSQL instances are managed through systemd services using a template service (postgresql@.service) - Workload includes ETL, PgBouncer Current DB2 Setting: Max open files = 65535 We would like clarification on: 1. Is increasing the open file limit (ulimit -n) recommended/required for PostgreSQL in such multi-cluster production environments? 2. What would be the recommended LimitNOFILE value for PostgreSQL considering: - multiple clusters on same host - production workloads - PgBouncer usage - ETL-heavy processing Current PostgreSQL service template: [Unit] Description=PostgreSQL 17 database server instance %i After=network.target [Service] Type=forking User=postgres Group=postgres EnvironmentFile=/etc/postgresql/%i.env ExecStart=/volumes/pg/pgsql-17/bin/pg_ctl start -D ${PGDATA} -o "-p ${PGPORT}" -l ${PGLOG}/postgresql.log -s -w -t 300 ExecStop=/volumes/pg/pgsql-17/bin/pg_ctl stop -D ${PGDATA} -s -m fast ExecReload=/volumes/pg/pgsql-17/bin/pg_ctl reload -D ${PGDATA} -s [Install] WantedBy=multi-user.target Reg, Hussain --0000000000000b69130652a78bbc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Hi Team,

We are currently migrating our database environments fr= om IBM Db2 to PostgreSQL 17.6 on AlmaLinux and would like some guidance/bes= t practices around recommended ulimit (open file d= escriptor) settings for PostgreSQL.

Env= ironment details:

  • OS: AlmaLinux
  • PostgreSQL Version: 17.6=
  • Deployment Model: Multiple PostgreSQL clusters (~10 clusters) runn= ing on the same server
  • All PostgreSQL instances are managed through= systemd services using a template service (postgresql@.service)
  • Workload includes ETL, PgBo= uncer

Current DB2 Setting:

Max open files =3D 65535

We would like clarification on:

  1. Is increasing the open file limit (ulimit -n) recommended/required for PostgreSQL in such multi-cluster production env= ironments?
  2. What would be the recommended LimitNOF= ILE value for PostgreSQL considering:
    • multiple clusters on sa= me host
    • production workloads
    • PgBouncer usage
    • ETL-he= avy processing

Current = PostgreSQL service template:

[U=
nit]
Description=3DPostgreSQL 17 database server instance %i
After=3Dnetwork.target

[Service]
Type=3Dforking
User=3Dpostgres
Group=3Dpostgres

EnvironmentFile=3D/etc/postgresql/%i.env

ExecStart=3D/volumes/pg/pgsql-17/bin/pg_ctl start -D ${PGDATA} -o "-p =
${PGPORT}" -l ${PGLOG}/postgresql.log -s -w -t 300
ExecStop=3D/volumes/pg/pgsql-17/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=3D/volumes/pg/pgsql-17/bin/pg_ctl reload -D ${PGDATA} -s

[Install]
WantedBy=3Dmulti-user.target

Reg,
Hussain
--0000000000000b69130652a78bbc--