On systems where the
PROCESSES is very large, the semaphore settings need to be adjusted accordingly.
As shown at Section 8.3, “The SEMMNS Parameter”
the maximum number of semaphores that can be allocated on a Linux system will be the lesser of: SEMMNS or (SEMMSL * SEMMNI). Since SEMMNI can stay at 128, we need to increase SEMMNS to 641280 (5010*128).
As shown at Section 8.4, “The SEMOPM Parameter”
a semaphore set can have the maximum number of SEMMSL semaphores per semaphore set and it is recommended to set SEMOPM equal to SEMMSL. Since SEMMSL is set to 5010 the SEMOPM parameter should be set to 5010 as well.
Hence, if the
PROCESSES is set to 5000, then the semaphore settings should be as follows:
sysctl -w kernel.sem="5010 641280 5010 128"