januar 25, 2022

The Geek Diary

indlægget forklarer, hvordan kernesemaforgrænser kan ændres i en CentOS/RHEL-server.

kerneparametre til at indstille semaforgrænser

kerneparametrene til at indstille semaforgrænserne er:

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

ændring af Semaforgrænser

hvis en grænse skal ændres, skal der tages højde for det (maks.antal arrays)*(maks. semaforer pr. array) > = (maks. Ingen grund til at have flere semaforer hele systemet, hvis det er begrænset af mængden af et muligt antal arrays med maksimale semaforer pr.

for eksempel:

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

i dette eksempel er vi nødt til at øge maks.semaforer pr. array grænse fra 128 til 192. De maksimale semaforer hele systemet kan også øges til 48000 ( 250*192 = 48000 >= 32000) eller holdes som 32000. I dette scenario holdes det på 32000.

for at indstille kerneparameter dynamisk, dvs.uden behov for genstart af serveren.

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

hvis alt er fint med systemet som forventet, ændre kernel parameter ved at tilføje den til /etc/sysctl.conf-fil for at sikre, at værdien vedvarer efter genstart af serveren.

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

hvis du vælger at indstille den direkte i filen uden at bruge systemet, skal du genindlæse filen:

# sysctl -p

du kan bekræfte grænser, der i øjeblikket er indstillet af:

# 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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.