Linux>IPC configuration>>
- The default shared memory limit (both
- SHMMAX and SHMALL) is 32
- MB in 2.2 kernels, but it can be changed in the
- proc 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
+ sysctl interface. For example, to allow 128 MB,
+ and explicitly set the maximum total shared memory size to 2097152
+ pages (the default):
-
$ echo 134217728 >/proc/sys/kernel/shmall
-
$ echo 134217728 >/proc/sys/kernel/shmmax
+
$ systcl -w kernel.shmmax=134217728
+
$ systcl -w kernel.shmall=2097152
- You could put these commands into a script run at boot-time.
+ In addition these settings can be saved between reboots in
+ /etc/sysctl.conf.
- Alternatively, you can use sysctl, if
- available, to control these parameters. Look for a file
- called /etc/sysctl.conf and add lines
- like the following to it:
-kernel.shmall = 134217728
-kernel.shmmax = 134217728
-
- This file is usually processed at boot time, but
- sysctl can also be called
- explicitly later.
-
-
- Other parameters are sufficiently sized for any application. If
- you want to see for yourself look in
- /usr/src/linux/include/asm-xxx>/shmparam.h>
- and /usr/src/linux/include/linux/sem.h>.
+ Older distributions may not have the sysctl program,
+ but equivalent changes can be made by manipulating the
+ /proc filesystem:
+
+
$ echo 134217728 >/proc/sys/kernel/shmmax
+
$ echo 2097152 >/proc/sys/kernel/shmall
+