Take the 2-minute tour ×

We are using Redhat 6.3 with 30G RAM to host our Postgres server.

The (default) shmmax value is 68,719,476,736

In some forums I have read that having an shmmax value larger than the RAM causes extensive paging, but in the Redhat forums it warns against changing a kernel parameter that is already configured to a value larger than the minimum requirements for an environment.

In ServerFault I've read that this probably has no impact.

So is there any impact of having shmmax value > RAM in a DB server, or the kernel understands this and handles it appropriately?


share|improve this question
add comment

1 Answer

There are no practical implications of having SHMMAX > physical RAM, unless you actually start using that RAM. Just be aware that if you start allocating more shared memory than your system has available RAM your system will swap (just like any other time you over-allocate RAM), which is certainly a performance killer.

Note that in recent versions of Postgres (9.3.0 and later) Postgres uses POSIX shared memory & mmap(), which reduces the demand for System V Shared Memory.
If you upgrade to Postgres 9.3 tuning the SHMMAX / SHMALL parameters can probably be avoided entirely unless you have an unusual environment (like running a few dozen Postgres clusters on one machine).

share|improve this answer
add comment

Your Answer


