From f55339577b162d539e357a1cb7e05f3ca54ceaa4 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Sat, 26 Feb 2005 23:19:05 +0000 Subject: [PATCH] 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 --- doc/src/sgml/runtime.sgml | 46 ++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 94c03bb5496..3ae948e2586 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1,5 +1,5 @@ <!-- -$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 >/proc/sys/kernel/shmall</userinput> -<prompt>$</prompt> <userinput>echo 134217728 >/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 >/proc/sys/kernel/shmmax</userinput> +<prompt>$</prompt> <userinput>echo 2097152 >/proc/sys/kernel/shmall</userinput> +</screen> </para> </listitem> </varlistentry> -- GitLab