deník Geek
příspěvek vysvětluje, jak lze limity semaforu jádra změnit na serveru CentOS/RHEL.
parametry jádra pro nastavení limitů semaforu
parametry jádra pro nastavení limitů semaforu jsou:
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays
Změna limitů semaforů
pokud je třeba změnit limit, je třeba vzít v úvahu, že (maximální počet polí)*(maximální semafory na pole) >= (maximální semafory v celém systému). Není třeba mít více semaforů v celém systému, pokud je omezeno množstvím možného počtu polí s maximálními semafory na něj.
například:
# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128
pro tento příklad musíme zvýšit maximální semafory na limit pole ze 128 na 192. Systém max semaforů může být také zvýšen na 48000 ( 250*192 = 48000 >= 32000) nebo jako 32000. V tomto scénáři se udržuje na 32000.
pro dynamické nastavení parametru jádra, tj. bez nutnosti restartu serveru.
# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192
pokud je vše v pořádku se systémem podle očekávání, upravte parametr jádra přidáním do /etc / sysctl.soubor conf, aby se zajistilo, že hodnota přetrvává i po restartu serveru.
# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192
pokud se rozhodnete jej nastavit přímo v souboru bez použití sysctl-w, budete muset soubor znovu načíst:
# sysctl -p
aktuálně nastavené limity můžete ověřit pomocí:
# 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