<para>
In some cases it might also be necessary to increase
<varname>SEMMAP</varname> to be at least on the order of
- <varname>SEMMNS</varname>. This parameter defines the size of the semaphore
+ <varname>SEMMNS</varname>. If the system has this parameter
+ (many do not), it defines the size of the semaphore
resource map, in which each contiguous block of available 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
</term>
<listitem>
<para>
- The default settings can be changed using
+ The default IPC settings can be changed using
the <command>sysctl</command> or
<command>loader</command> interfaces. The following
parameters can be set using <command>sysctl</command>:
<programlisting>
kern.ipc.semmni=256
kern.ipc.semmns=512
-kern.ipc.semmnu=256
</programlisting>
- After modifying these values a reboot is required for the new
+ After modifying that file, a reboot is required for the new
settings to take effect.
- (Note: FreeBSD does not use <varname>SEMMAP</varname>. Older versions
- would accept but ignore a setting for <literal>kern.ipc.semmap</literal>;
- newer versions reject it altogether.)
</para>
<para>
<para>
<systemitem class="osname">FreeBSD</systemitem> versions before 4.0 work like
- <systemitem class="osname">OpenBSD</systemitem> (see below).
+ old <systemitem class="osname">OpenBSD</systemitem> (see below).
</para>
</listitem>
</varlistentry>
IPC parameters can be adjusted using <command>sysctl</command>,
for example:
<screen>
-<prompt>$</prompt> <userinput>sysctl -w kern.ipc.shmmax=16777216</userinput>
+<prompt>#</prompt> <userinput>sysctl -w kern.ipc.semmni=100</userinput>
</screen>
- To have these settings persist over reboots, modify
+ To make these settings persist over reboots, modify
<filename>/etc/sysctl.conf</filename>.
</para>
+ <para>
+ You will usually want to increase <literal>kern.ipc.semmni</literal>
+ and <literal>kern.ipc.semmns</literal>,
+ as <systemitem class="osname">NetBSD</systemitem>'s default settings
+ for these are uncomfortably small.
+ </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.
</para>
<para>
- <systemitem class="osname">NetBSD</systemitem> versions before 5.0 work like
- <systemitem class="osname">OpenBSD</systemitem> (see below), except that
- parameters should be set with the keyword <literal>options</literal> not
- <literal>option</literal>.
+ <systemitem class="osname">NetBSD</systemitem> versions before 5.0
+ work like old <systemitem class="osname">OpenBSD</systemitem>
+ (see below), except that kernel parameters should be set with the
+ keyword <literal>options</literal> not <literal>option</literal>.
</para>
</listitem>
</varlistentry>
</term>
<listitem>
<para>
- The options <varname>SYSVSHM</varname> and <varname>SYSVSEM</varname> need
- 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</varname> (in pages). The following
- shows an example of how to set the various parameters:
+ In <systemitem class="osname">OpenBSD</systemitem> 3.3 and later,
+ IPC parameters can be adjusted using <command>sysctl</command>,
+ for example:
+<screen>
+<prompt>#</prompt> <userinput>sysctl kern.seminfo.semmni=100</userinput>
+</screen>
+ To make these settings persist over reboots, modify
+ <filename>/etc/sysctl.conf</filename>.
+ </para>
+
+ <para>
+ You will usually want to
+ increase <literal>kern.seminfo.semmni</literal>
+ and <literal>kern.seminfo.semmns</literal>,
+ as <systemitem class="osname">OpenBSD</systemitem>'s default settings
+ for these are uncomfortably small.
+ </para>
+
+ <para>
+ In older <systemitem class="osname">OpenBSD</systemitem> versions,
+ you will need to build a custom kernel to change the IPC parameters.
+ Make sure that the options <varname>SYSVSHM</varname>
+ and <varname>SYSVSEM</varname> are enabled, too. (They are by
+ default.) The following shows an example of how to set the various
+ parameters in the kernel configuration file:
<programlisting>
option SYSVSHM
option SHMMAXPGS=4096