janvier 25, 2022

The Geek Diary

L’article explique comment les limites du sémaphore du noyau peuvent être modifiées dans un serveur CentOS/RHEL.

Paramètres du noyau pour définir les limites du sémaphore

Les paramètres du noyau pour définir les limites du sémaphore sont:

kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays

Modification des limites du sémaphore

Si une limite doit être modifiée, elle doit être prise en compte pour tenir compte de cela (nombre maximum de tableaux) * (sémaphores maximum par tableau) > = (sémaphores maximum à l’échelle du système). Pas besoin d’avoir plus de sémaphores à l’échelle du système s’il est limité par la quantité d’un nombre possible de tableaux avec des sémaphores maximum par lui.

Par exemple:

# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128

Pour cet exemple, nous devons augmenter la limite maximale des sémaphores par tableau de 128 à 192. Les sémaphores max à l’échelle du système peuvent également être augmentés à 48000 ( 250*192 = 48000 >= 32000) ou gardé comme 32000. Dans ce scénario, il est maintenu à 32000.

Pour définir dynamiquement le paramètre du noyau, c’est-à-dire sans avoir besoin de redémarrer le serveur.

# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192

Si tout va bien avec le système comme prévu, modifiez le paramètre du noyau en l’ajoutant au fichier /etc/sysctl.fichier conf pour s’assurer que la valeur persiste après le redémarrage du serveur.

# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192

Si vous choisissez de le définir directement dans le fichier sans utiliser le sysctl-w, vous devrez recharger le fichier:

# sysctl -p

Vous pouvez vérifier les limites actuellement définies par:

# 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.