El Diario Geek
La publicación explica cómo se pueden cambiar los límites de semáforos del núcleo en un servidor CentOS / RHEL.
Parámetros del núcleo para establecer límites de semáforos
Los parámetros del núcleo para establecer límites de semáforos son:
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays
Cambio de límites de semáforos
Si es necesario cambiar un límite, se debe tener en cuenta que (número máximo de matrices)*(número máximo de semáforos por matriz) >= (número máximo de semáforos en todo el sistema). No es necesario tener más semáforos en todo el sistema si está limitado por la cantidad de un número posible de matrices con un máximo de semáforos por ella.
Por ejemplo:
# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128
Para este ejemplo, necesitamos aumentar max semáforos por matriz límite de 128 a 192. Los semáforos máximos de todo el sistema también se pueden aumentar a 48000 ( 250*192 = 48000 >= 32000) o se mantiene como 32000. En este escenario, se mantiene en 32000.
Para establecer parámetros del núcleo dinámicamente, es decir, sin necesidad de reiniciar el servidor.
# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192
Si todo está bien con el sistema como se espera, modifique el parámetro del núcleo agregándolo al /etc / sysctl.archivo de configuración para garantizar que el valor persiste después del reinicio del servidor.
# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192
Si elige configurarlo directamente en el archivo sin usar el sysctl-w, deberá recargar el archivo:
# sysctl -p
Puede verificar los límites establecidos actualmente por:
# ipcs -ls------ Semaphore Limits --------max number of arrays = 192max semaphores per array = 250max semaphores system wide = 32000max ops per semop call = 32semaphore max value = 32767