|
SHMMAX>>
Maximum size of shared memory segment (bytes)>
- 512 kB + 8192 * buffers + extra ... infinity
+ 700 kB + 8192 * buffers + extra ... infinity
|
1 (at most about 256 kB)>
+ |
+ SHMALL>>
+ Total amount of shared memory available (bytes or pages)>
+ if bytes, same as SHMMAX; if pages, ceil(SHMMAX/PAGE_SIZE)>
+
+
|
SHMSEG>>
Maximum number of shared memory segments per process>
By default, only 4 MB of shared memory is supported. Keep in
mind that shared memory is not pageable; it is locked in RAM.
- The shared memory parameters are:
-#define SHMMAX /* max shared memory segment size (bytes) */
-#define SHMMIN /* min shared memory segment size (bytes) */
-#define SHMMNI /* max number of shared memory identifiers */
-#define SHMSEG /* max shared memory segments per process */
-#define SHMALL /* max amount of shared memory (pages) */
-
-
- To increase the number of buffers supported by the postmaster, add the
- following to your kernel config file. A SHMALL> value of 1024
- represents 4MB of shared memory. Increase it accordingly:
+
+ To increase the number of shared buffers supported by the
+ postmaster, add the following to your kernel config file. A
+ SHMALL> value of 1024 represents 4MB of shared
+ memory. The following increases the maximum shared memory area
+ to 32 MB:
-options "SHMALL=4096"
+options "SHMALL=8192"
options "SHMMAX=\(SHMALL*PAGE_SIZE\)"
- For those running 4.1 or later, just recompile the kernel and
- reboot. For those running earlier releases, use
-
bpatch> to find the sysptsize> value
- for the current kernel. This is computed dynamically at
- bootup.
+ For those running 4.1 or later, just make the above changes,
+ recompile the kernel, and reboot. For those running earlier
+
releases, use bpatch> to find the
+ sysptsize> value in the current kernel. This is
+ computed dynamically at bootup.
$ bpatch -r sysptsize>
0x9 = 9>
- Next, change SYSPTSIZE> to a hard-coded value. Use
- the bpatch value, plus add 1 for every additional 4 MB of
+ Next, add SYSPTSIZE> as a hard-coded value in the
+ kernel config file. Increase the value you found using
+
bpatch>. Add 1 for every additional 4 MB of
shared memory you desire.
-options "SYSPTSIZE=13"
+options "SYSPTSIZE=16"
- sysptsize> can not be changed by sysctl on the fly.
+ sysptsize> can not be changed by sysctl.
- The defaults are in /sys/sys/sem.h>:
-#define SEMMNI 10 /* # of semaphore identifiers */
-
-#define SEMMNS 60 /* # of semaphores in system */
-
-#define SEMUME 10 /* max # of undo entries per process */
-
-#define SEMMNU 30 /* # of undo structures in system */
-
Set the values you want in your kernel config file, e.g.:
options "SEMMNI=40"