<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.32 2000/11/08 17:57:45 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.33 2000/11/10 16:32:09 tgl Exp $
-->
<Chapter Id="runtime">
limits of the IPC resources then the postmaster will refuse to
start up and should leave a marginally instructive error message
about which problem was encountered and what needs to be done
- about it. The relevant kernel parameters have a relatively
- consistent nomenclature across systems; <xref
+ about it. The relevant kernel parameters are named
+ consistently across different systems; <xref
linkend="sysvipc-parameters"> gives an overview. The methods to
set them, however, vary; suggestions for some platforms are given
- below. Be aware, however, that you will have to reboot your
- machine at best, or possibly recompile the kernel, to change these
+ below. Be aware that you will have to reboot your
+ machine at least, possibly even recompile the kernel, to change these
settings.
</para>
<row>
<entry><varname>SHMSEG</></>
<entry>Maximum number of shared memory segments per process</>
- <entry>Must be at least 3, but the default is much higher.</>
+ <entry>must be at least 3, but the default is much higher</>
</row>
<row>
<row>
<entry><varname>SEMMNI</></>
<entry>Maximum number of semaphore identifiers (i.e., sets)</>
- <entry>>= ceil(max_connections % 16)</>
+ <entry>>= ceil(max_connections / 16)</>
</row>
<row>
<entry><varname>SEMMNS</></>
<entry>Maximum number of semaphores system-wide</>
- <entry>number of allowed connections, rounded up to multiple of 16</>
+ <entry>max_connections rounded up to multiple of 16, + room for other applications</>
</row>
<row>
The parameter <varname>SEMMNI</> determines the limit on the
number of semaphore sets that can exist on the system at one time.
Hence this parameter must be at least
- <literal>ceil(max_connections % 16)</>. Lowering the number of
+ <literal>ceil(max_connections / 16)</>. Lowering the number of
allowed connections is a temporary workaround for failures, which
are usually confusingly worded <quote><errorname>No space left on
device</></>, from the function <function>semget()</>.
semaphores needs an entry. When a semaphore set is freed it is
either added to an existing entry that is adjacent to the freed
block or it is registered under a new map entry. If the map is
- full, the freed semaphores gets lost (until reboot). Fragmentation
+ full, the freed semaphores get lost (until reboot). Fragmentation
of the semaphore space could therefore over time lead to less
available semaphores than there should be.
</para>
</para>
<para>
- Various settings related to <quote>semaphore undo</>, such as
- <varname>SEMMNU</> and <varname>SEMUME</>, are not of relevance
- with <productname>Postgres</>.
+ Various other settings related to <quote>semaphore undo</>, such as
+ <varname>SEMMNU</> and <varname>SEMUME</>, are not of concern
+ for <productname>Postgres</>.
</para>
<programlisting>
/sys/sys/shm.h:69:#define SHMMAXPGS 1024 /* max hardware pages... */
</programlisting>
- The default setting of 1024 is for a maximum of 4 MB of shared
+ The default setting of 1024 provides a maximum of 4 MB of shared
memory.
</para>
</formalpara>
to be enabled when the kernel is compiled. (They are by
default.) The maximum size of shared memory is determined by
the option <varname>SHMMAXPGS</> (in pages). The following
- shows an example on how to set the various parameters:
+ shows an example of how to set the various parameters:
<programlisting>
options SYSVSHM
options SHMMAXPGS=4096