Update kernel docs for Solaris 10.
authorBruce Momjian
Fri, 11 Mar 2011 12:53:34 +0000 (07:53 -0500)
committerBruce Momjian
Fri, 11 Mar 2011 12:53:34 +0000 (07:53 -0500)
Josh Berkus

doc/src/sgml/runtime.sgml

index 4a989df4f951d0eb63786d7f3f2bc82f10fc8ab5..c369229635971aa55339bccc0c6029a09eaaff8d 100644 (file)
@@ -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 
-        url="http://sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.html">
-        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.