提交 f5533957 编写于 作者: B Bruce Momjian

Adjust OS-specific kernel settings to mention old and new BSD methods of

adjusting values:

> But to be on the safe side, it would make sense to do something similar
> to the BSD section, and comment about older distributions maybe needing
> to manipulate /proc/kernel/* directly.

Mark Kirkwood
上级 0fc4ecf9
<!--
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.304 2005/02/10 05:14:58 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.305 2005/02/26 23:19:05 momjian Exp $
-->
<chapter Id="runtime">
......@@ -4458,37 +4458,29 @@ option SEMMAP=256
<indexterm><primary>Linux</><secondary>IPC configuration</></>
<listitem>
<para>
The default shared memory limit (both
<varname>SHMMAX</varname> and <varname>SHMALL</varname>) is 32
MB in 2.2 kernels, but it can be changed in the
<filename>proc</filename> file system (without reboot). For
example, to allow 128 MB:
The default settings are only suitable for small installations
(the default max segment size is 32 MB). However the remaining
defaults are quite generously sized, and usually do not require
changes. The max segment size can be changed via the
<command>sysctl</command> interface. For example, to allow 128 MB,
and explicitly set the maximum total shared memory size to 2097152
pages (the default):
<screen>
<prompt>$</prompt> <userinput>echo 134217728 &gt;/proc/sys/kernel/shmall</userinput>
<prompt>$</prompt> <userinput>echo 134217728 &gt;/proc/sys/kernel/shmmax</userinput>
<prompt>$</prompt> <userinput>systcl -w kernel.shmmax=134217728</userinput>
<prompt>$</prompt> <userinput>systcl -w kernel.shmall=2097152</userinput>
</screen>
You could put these commands into a script run at boot-time.
In addition these settings can be saved between reboots in
<filename>/etc/sysctl.conf.
</para>
<para>
Alternatively, you can use <command>sysctl</command>, if
available, to control these parameters. Look for a file
called <filename>/etc/sysctl.conf</filename> and add lines
like the following to it:
<programlisting>
kernel.shmall = 134217728
kernel.shmmax = 134217728
</programlisting>
This file is usually processed at boot time, but
<command>sysctl</command> can also be called
explicitly later.
</para>
<para>
Other parameters are sufficiently sized for any application. If
you want to see for yourself look in
<filename>/usr/src/linux/include/asm-<replaceable>xxx</>/shmparam.h</>
and <filename>/usr/src/linux/include/linux/sem.h</>.
Older distributions may not have the <command>sysctl</command> program,
but equivalent changes can be made by manipulating the
<filename>/proc</filename> filesystem:
<screen>
<prompt>$</prompt> <userinput>echo 134217728 &gt;/proc/sys/kernel/shmmax</userinput>
<prompt>$</prompt> <userinput>echo 2097152 &gt;/proc/sys/kernel/shmall</userinput>
</screen>
</para>
</listitem>
</varlistentry>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册