Change to kernel-resources

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: pgsql-docs(at)postgreSQL(dot)org
Subject: Change to kernel-resources
Date: 2010-05-11 20:41:46
Message-ID: 4BE9C10A.4040807@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

All,

Our Solaris section is out of date. We should change it to:

===================

Solaris 2.6 to 2.9 (Solaris 6 to Solaris 9)

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
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

You need to reboot for the changes to take effect.

See also
http://sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.html
for information on shared memory under Solaris.

Solaris 2.10 (Solaris 10) and OpenSolaris

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 1/4 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. The above assumes that there isn't already a project
101, and that postgresql is run by the postgres user in the postgres
group. No 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)

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.

================

(and no, there's no reusable link to the solaris docs)

--
-- Josh Berkus
PostgreSQL Experts Inc.
http://www.pgexperts.com

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Robert Haas 2010-05-11 22:06:18 Re: Change to kernel-resources
Previous Message Yeb Havinga 2010-05-11 08:00:21 Re: no universally correct setting for fsync