The only system that we have seen problems with related to PostgreSQL's IPC are Solaris systems. On Solaris systems, we have tuned the PostgreSQL requirements down to run on a default installation, but if other software is using any of the shared memory, there may not be enough shared memory available to run our product.
You can change the amount of allowed shared memory by editing the /etc/system file, and adding or changing the following settings:
| Code: |
set shmsys:shminfo_shmmax=0x2000000
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=256
set shmsys:shminfo_shmseg=256
set semsys:seminfo_semmap=256
set semsys:seminfo_semmni=512
set semsys:seminfo_semmns=512
set semsys:seminfo_semmsl=32
|
One customer has also reported having to change "shmsys

hminfo_shmmin" to 100.
Default settings for Solaris 2.x:
shmmax: 1048576 (largest size of a shared memory segment)
shmmin: 1
shmseg: 6 (# of segments per process)
shmmni: 100 (# of segments systemwide)
The actual recommended value for SEMMAX is:
250kB + 8.2kB * #buffers + 14.2kB * #connections
The number of buffers is 2 * #connections, generally. The defaults for Postgres are 64 buffers, which means 32 connections. Our startup specifies 32 buffers and 16 connections instead. These settings will run on a default Solaris installation with no additional IPC use.