From 3896138b7c18c89f57d35fcb85a369d89323e827 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 11 Mar 2011 07:53:34 -0500 Subject: [PATCH] Update kernel docs for Solaris 10. Josh Berkus --- doc/src/sgml/runtime.sgml | 65 +++++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 4a989df4f9..c369229635 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1028,14 +1028,14 @@ sysctl -w kern.sysv.shmall - Solaris + Solaris 2.6 to 2.9 (Solaris + 6 to Solaris 9) SolarisIPC configuration - At least in version 2.6, the default maximum size of a shared - memory segment is too low for PostgreSQL. The - relevant settings can be changed in /etc/system, - for example: + The default maximum size of a shared memory segment is too low for + PostgreSQL. The relevant settings can be changed in + /etc/system, for example: set shmsys:shminfo_shmmax=0x2000000 set shmsys:shminfo_shmmin=1 @@ -1047,14 +1047,59 @@ set semsys:seminfo_semmni=512 set semsys:seminfo_semmns=512 set semsys:seminfo_semmsl=32 - You need to reboot for the changes to take effect. + You need to reboot for the changes to take effect. See also + + for information on shared memory under older versions of Solaris. + + + + + + Solaris 2.10 (Solaris + 10) + OpenSolaris + SolarisIPC configuration + + + In Solaris 10 and OpenSolaris, the default shared memory and + semaphore settings are good enough for most + PostgreSQL applications. Solaris now defaults + to a SHMMAX of one-quarter of system RAM. If + you need to increase this in order to set shared memory settings + slightly higher, you should use a project setting associated + with the postgres user. For example, run the + following as root: + +projadd -c "PostgreSQL DB User" -K "project.max-shm-memory=(privileged,8GB,deny)" -U postgres -G postgres user.postgres + + + + + This command adds the user.postgres project and + raises the shared memory maximum for the postgres + user to 8GB, and takes effect the next time that user logs + in, or when you restart PostgreSQL (not reload). + The above assumes that PostgreSQL is run by + the postgres user in the postgres + group. No server reboot is required. + + + + Other recommended kernel setting changes for database servers which will + have a large number of connections are: + +project.max-shm-ids=(priv,32768,deny) +project.max-sem-ids=(priv,4096,deny) +project.max-msg-ids=(priv,4096,deny) + - See also - for information on shared memory under - Solaris. + Additionally, if you are running PostgreSQL + inside a zone, you may need to raise the zone resource usage + limits as well. See "Chapter2: Projects and Tasks" in the + Solaris 10 System Administrator's Guide for more + information on projects and prctl. -- GitLab