Improvements to documentation of shared memory configuration under

FreeBSD. From Mark Kirkwood, editorializing by Neil Conway.
This commit is contained in:
Neil Conway 2005-02-10 05:14:58 +00:00
parent 280cae35aa
commit cf1f6f98f2
1 changed files with 59 additions and 16 deletions

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.303 2005/01/23 00:30:18 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.304 2005/02/10 05:14:58 neilc Exp $
--> -->
<chapter Id="runtime"> <chapter Id="runtime">
@ -4351,9 +4351,55 @@ options "SEMMNS=240"
<varlistentry> <varlistentry>
<term><systemitem class="osname">FreeBSD</></term> <term><systemitem class="osname">FreeBSD</></term>
<indexterm><primary>FreeBSD</><secondary>IPC configuration</></>
<listitem>
<para>
The default settings are only suitable for small installations
(for example, default <varname>SHMMAX</varname> is 32
MB). Changes can be made via the <command>sysctl</command> or
<command>loader</command> interfaces. The following
parameters can be set using <command>sysctl</command>:
<screen>
<prompt>$</prompt> <userinput>systcl -w kern.ipc.shmall=32768</userinput>
<prompt>$</prompt> <userinput>systcl -w kern.ipc.shmmax=134217728</userinput>
<prompt>$</prompt> <userinput>systcl -w kern.ipc.semmap=256</userinput>
</screen>
To have these settings persist over reboots, modify
<filename>/etc/sysctl.conf</filename>.
</para>
<para>
The remaining sempahore settings are read-only as far as
<command>sysctl</command> is concerned, but can be changed
before boot using the <command>loader</command> prompt:
<screen>
<prompt>(loader)</prompt> <userinput>set kern.ipc.semmni=256</userinput>
<prompt>(loader)</prompt> <userinput>set kern.ipc.semmns=512</userinput>
<prompt>(loader)</prompt> <userinput>set kern.ipc.semmnu=256</userinput>
</screen>
Similarly these can be saved between reboots in
<filename>/boot/loader.conf</filename>.
</para>
<para>
You might also want to configure your kernel to lock shared
memory into RAM and prevent it from being paged out to swap.
This can be accomplished using the <command>sysctl</command>
setting <literal>kern.ipc.shm_use_phys</literal>.
</para>
<para>
<systemitem class="osname">FreeBSD</> versions before 4.0 work like
<systemitem class="osname">NetBSD</> and <systemitem class="osname">
OpenBSD</> (see below), except that the configuration file uses the
keyword "options" instead of "option".
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="osname">NetBSD</></term> <term><systemitem class="osname">NetBSD</></term>
<term><systemitem class="osname">OpenBSD</></term> <term><systemitem class="osname">OpenBSD</></term>
<indexterm><primary>FreeBSD</><secondary>IPC configuration</></>
<indexterm><primary>NetBSD</><secondary>IPC configuration</></> <indexterm><primary>NetBSD</><secondary>IPC configuration</></>
<indexterm><primary>OpenBSD</><secondary>IPC configuration</></> <indexterm><primary>OpenBSD</><secondary>IPC configuration</></>
<listitem> <listitem>
@ -4364,25 +4410,23 @@ options "SEMMNS=240"
the option <varname>SHMMAXPGS</> (in pages). The following the option <varname>SHMMAXPGS</> (in pages). The following
shows an example of how to set the various parameters: shows an example of how to set the various parameters:
<programlisting> <programlisting>
options SYSVSHM option SYSVSHM
options SHMMAXPGS=4096 option SHMMAXPGS=4096
options SHMSEG=256 option SHMSEG=256
options SYSVSEM option SYSVSEM
options SEMMNI=256 option SEMMNI=256
options SEMMNS=512 option SEMMNS=512
options SEMMNU=256 option SEMMNU=256
options SEMMAP=256 option SEMMAP=256
</programlisting> </programlisting>
(On <systemitem class="osname">NetBSD</> and <systemitem
class="osname">OpenBSD</> the key word is actually
<literal>option</literal> singular.)
</para> </para>
<para> <para>
You might also want to configure your kernel to lock shared You might also want to configure your kernel to lock shared
memory into RAM and prevent it from being paged out to swap. memory into RAM and prevent it from being paged out to swap.
Use the <command>sysctl</> setting This can be accomplished using the <command>sysctl</command>
<literal>kern.ipc.shm_use_phys</>. setting <literal>kern.ipc.shm_use_phys</literal>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -4589,7 +4633,6 @@ set semsys:seminfo_semmsl=32
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</sect2> </sect2>