By default, the database engine uses one semaphore set for all the semaphores needed by the database. When greater than 1000 users connect to a single database, there might be high contention for the semaphore set. Using multiple semaphore sets helps alleviate this contention and improve performance with high user counts. The broker startup parameter, Semaphore Sets (-semsets), allows you to change the number of semaphore sets available to the OpenEdge broker.
The broker uses two groups of semaphores, Login and User. The Login semaphore is used during connection to the database. The system allocates one User semaphore for every user specified by the Number of Users (-n) startup parameter. User semaphores are allocated using a round robin mechanism. If you specify the number of Semaphore Sets, PROSERVE allocates one set for the Login semaphore and the remaining sets are used for User semaphores.
In this example, the broker uses two semaphore sets, one for the Login semaphore and one for the ten User semaphores:
proserve db-name -semsets 2 -n 10
In this example, the broker uses three semaphore sets, one for the Login semaphore, one for five of the User semaphores, and one for the remaining five User semaphores: