6,534
edits
Changes
fixed page size, linked to memory page, linked HN and VEs, categorized
PostgreSQL uses shared memory. As such, you have to check two things about the VE.
1. UBC's shmpages setting for this VE. This dictates how many pages (8k apieceone page is usually 4K, see [[memory page]] for more details) are available to the VE, e.g. shmpages=16384 gives a limit of 128 64 MB of shared memory.
2. "/sbin/sysctl kernel.shmmax" This is the VE's self-imposed limit on how much shared memory may be allocated in a single request, in bytes.
Get that? Not only does the HN impose a limit on the VE's total shared memory usage, but the VE itself has a setting for the maximum amount in a single chunk.
* Note that processes other than PostgreSQL may be using shared memory, and also that shmpages includes stuff other than IPC shared memory (tmpfs, shmem, etc) So don't set shmpages to exactly the amount you want to give Postgres.
* The sysctl kernel.shmmax value set in the [[HN]]/[[VE0 ]] applies only to the [[HN]], not to VEs[[VE]]s. [[Category:FAQ]][[Category:Kernel]][[Category:Troubleshooting]]