januar 25, 2022

Geek Diary

innlegget forklarer hvordan kernel semafor grenser kan endres I En CentOS / RHEL server.

Kjerneparametere for å angi semaforgrenser

kjerneparametrene for å angi semaforgrensene er:

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

Endre Semaforgrenser

hvis en grense må endres, bør det tas hensyn til at (maks antall arrays)*(maks semaforer per array) >= (maks semaforer i hele systemet). Du trenger ikke å ha flere semaforer systemomfattende hvis begrenset av mengden av et mulig antall arrays med maks semaforer per det.

for eksempel:

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

for dette eksemplet må vi øke maks semaforer per matrisegrense fra 128 til 192. Max semaforer system-wide kan også økes til 48000 ( 250*192 = 48000 >= 32000) eller holdt som 32000. I dette scenariet holdes det på 32000.

for å sette kjerneparameteren dynamisk dvs.uten behov for serverstart.

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

hvis alt er bra med systemet som forventet, endre kjerneparameteren ved å legge den til /etc / sysctl.conf fil for å sikre at verdien vedvarer etter server omstart.

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

hvis du velger å sette den direkte i filen uten å bruke sysctl-w, må du laste filen på nytt:

# sysctl -p

du kan kontrollere grensene som er satt av:

# 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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.