Januar 25, 2022

Das Geek-Tagebuch

Der Beitrag erklärt, wie Kernel-Semaphor-Grenzwerte in einem CentOS / RHEL-Server geändert werden können.

Kernel-Parameter zum Setzen der Semaphor-Limits

Die Kernel-Parameter zum Setzen der Semaphor-Limits sind:

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

Ändern von Semaphor-Limits

Wenn ein Limit geändert werden muss, sollte berücksichtigt werden, dass (maximale Anzahl von Arrays) * (maximale Semaphore pro Array) > = (maximale Semaphore systemweit). Sie müssen nicht mehr Semaphore systemweit haben, wenn sie durch die Anzahl einer möglichen Anzahl von Arrays mit maximalen Semaphoren pro Array begrenzt sind.

Zum Beispiel:

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

In diesem Beispiel müssen wir die maximale Semaphor-Grenze pro Array von 128 auf 192 erhöhen. Die Max-Semaphore systemweit können auch erhöht werden auf 48000 ( 250*192 = 48000 >= 32000) oder als 32000 gehalten. In diesem Szenario wird es bei 32000 gehalten.

Um Kernel-Parameter dynamisch zu setzen, d.h. ohne Neustart des Servers.

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

Wenn alles wie erwartet mit dem System in Ordnung ist, ändern Sie den Kernel-Parameter, indem Sie ihn zur Datei /etc/sysctl hinzufügen.conf-Datei, um sicherzustellen, dass der Wert nach dem Neustart des Servers erhalten bleibt.

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

Wenn Sie es direkt in der Datei festlegen möchten, ohne sysctl -w zu verwenden, müssen Sie die Datei neu laden:

# sysctl -p

Sie können die derzeit festgelegten Limits überprüfen, indem Sie:

# 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.