8.6. An Example of Semaphore Settings

On systems where the ora.init parameter PROCESSES is very large, the semaphore settings need to be adjusted accordingly.
As shown at Section 24.1, “Optimal Flexible Architecture (OFA) for 10g R1 (10.1.0.2)” the SEMMSL setting should be 10 plus the largest PROCESSES parameter of any Oracle database on the system. So if you have one database instance running on a system where PROCESSES is set to 5000, then SEMMSL should be set to 5010.
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 ora.init parameter PROCESSES is set to 5000, then the semaphore settings should be as follows:
sysctl -w kernel.sem="5010 641280 5010 128"