Skip to content

Commit 7951e0d

Browse files
committed
Doc: document possible need to raise kernel's somaxconn limit.
On fast machines, it's possible for applications such as pgbench to issue connection requests so quickly that the postmaster's listen queue overflows in the kernel, resulting in unexpected failures (with not-very-helpful error messages). Most modern OSes allow the queue size to be increased, so document how to do that. Per report from Kevin McKibbin. Discussion: https://postgr.es/m/CADc_NKg2d+oZY9mg4DdQdoUcGzN2kOYXBu-3--RW_hEe0tUV=g@mail.gmail.com
1 parent 384199e commit 7951e0d

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

doc/src/sgml/runtime.sgml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,22 @@ default:\
13961396
linkend="guc-max-files-per-process"/> configuration parameter to
13971397
limit the consumption of open files.
13981398
</para>
1399+
1400+
<para>
1401+
Another kernel limit that may be of concern when supporting large
1402+
numbers of client connections is the maximum socket connection queue
1403+
length. If more than that many connection requests arrive within a very
1404+
short period, some may get rejected before the postmaster can service
1405+
the requests, with those clients receiving unhelpful connection failure
1406+
errors such as <quote>Resource temporarily unavailable</quote> or
1407+
<quote>Connection refused</quote>. The default queue length limit is 128
1408+
on many platforms. To raise it, adjust the appropriate kernel parameter
1409+
via <application>sysctl</application>, then restart the postmaster.
1410+
The parameter is variously named <varname>net.core.somaxconn</varname>
1411+
on Linux, <varname>kern.ipc.soacceptqueue</varname> on newer FreeBSD,
1412+
and <varname>kern.ipc.somaxconn</varname> on macOS and other BSD
1413+
variants.
1414+
</para>
13991415
</sect2>
14001416

14011417
<sect2 id="linux-memory-overcommit">

0 commit comments

Comments
 (0)