januari 25, 2022

het Geek-dagboek

The post legt uit hoe kernel-semafoorlimieten kunnen worden gewijzigd in een CentOS/RHEL-server.

kernelparameters om semafoorlimieten in te stellen

de kernelparameters om de semafoorlimieten in te stellen zijn::

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

wijzigen van Semafoorlimieten

als een limiet moet worden gewijzigd, moet er rekening mee worden gehouden dat (max aantal arrays)*(max semaforen per array) >= (max semaforen systeem-breed). Geen behoefte om meer semaforen systeem-breed als beperkt door de hoeveelheid van een mogelijk aantal arrays met max semaforen per het.

bijvoorbeeld:

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

in dit voorbeeld moeten we de maximale semaforen per array limiet verhogen van 128 naar 192. De max semaforen systeem-breed kan ook worden verhoogd tot 48000 ( 250*192 = 48000 >= 32000) of gehouden als 32000. In dit scenario wordt het op 32000 gehouden.

om kernelparameter dynamisch in te stellen, d.w.z. zonder dat de server opnieuw moet worden opgestart.

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

als alles in orde is met het systeem zoals verwacht, pas dan de kernelparameter aan door het toe te voegen aan /etc/sysctl.conf-bestand om ervoor te zorgen dat de waarde blijft bestaan na het opnieuw opstarten van de server.

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

als je ervoor kiest om het direct in het bestand in te stellen zonder de sysctl-w te gebruiken, moet je het bestand herladen:

# sysctl -p

u kunt de huidige limieten controleren door:

# 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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.