Since commit ecb0d20a9 hasn't crashed and burned, here's the promised
docs update for it.
In addition to explaining that Linux and FreeBSD ports now use POSIX
semaphores, I did some wordsmithing on pre-existing wording; in
particular trying to clarify which SysV parameters need to be set with
an eye to total usage across all applications.
<entry>at least <literal>ceil((max_connections + autovacuum_max_workers + max_worker_processes + 5) / 16)</literal> plus room for other applications</>
</row>
<row>
@ -725,9 +738,8 @@ psql: could not connect to server: No such file or directory
(typically 48 bytes, on 64-bit platforms) for each copy of the server.
On most modern operating systems, this amount can easily be allocated.
However, if you are running many copies of the server, or if other
applications are also using System V shared memory, it may be necessary
to increase <varname>SHMMAX</>, the maximum size in bytes of a shared
memory segment, or <varname>SHMALL</>, the total amount of System V shared
applications are also using System V shared memory, it may be necessary to
increase <varname>SHMALL</>, which is the total amount of System V shared
memory system-wide. Note that <varname>SHMALL</> is measured in pages
rather than bytes on many systems.
</para>
@ -742,6 +754,7 @@ psql: could not connect to server: No such file or directory
</para>
<para>
When using System V semaphores,
<productname>PostgreSQL</> uses one semaphore per allowed connection
(<xref linkend="guc-max-connections">), allowed autovacuum worker process
(<xref linkend="guc-autovacuum-max-workers">) and allowed background
@ -779,15 +792,19 @@ psql: could not connect to server: No such file or directory
</para>
<para>
The <varname>SEMMSL</> parameter, which determines how many
semaphores can be in a set, must be at least 17 for
Various other settings related to <quote>semaphore undo</>, such as
<varname>SEMMNU</> and <varname>SEMUME</>, do not affect
<productname>PostgreSQL</>.
</para>
<para>
Various other settings related to <quote>semaphore undo</>, such as
<varname>SEMMNU</> and <varname>SEMUME</>, do not affect
<productname>PostgreSQL</>.
When using POSIX semaphores, the number of semaphores needed is the
same as for System V, that is one semaphore per allowed connection
(<xref linkend="guc-max-connections">), allowed autovacuum worker process
(<xref linkend="guc-autovacuum-max-workers">) and allowed background
process (<xref linkend="guc-max-worker-processes">).
On the platforms where this option is preferred, there is no specific