a Geek Diary
a post elmagyarázza, hogyan kernel szemafor határértékeket lehet változtatni a CentOS/RHEL szerver.
a szemafor határértékek beállításához szükséges Kernel paraméterek
a szemafor határértékek beállításához szükséges kernel paraméterek a következők:
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays
szemafor határértékek módosítása
ha egy határértéket meg kell változtatni, akkor figyelembe kell venni, hogy (tömbök maximális száma)*(tömbök maximális szemaforjai) >= (Max szemaforok rendszerszinten). Nem kell, hogy több szemaforok rendszerszintű, ha korlátozza az összeg a lehetséges számú tömbök max szemaforok per.
például:
# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128
ebben a példában 128-ról 192-re kell növelnünk a maximális szemaforokat tömbönként. A Max szemaforok rendszerszintű is növelhető 48000 ( 250*192 = 48000 >= 32000) vagy tartani, mint 32000. Ebben a forgatókönyvben 32000-en tartják.
a kernel paraméter dinamikus beállítása, azaz a kiszolgáló újraindítása nélkül.
# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192
ha minden rendben van a rendszerrel a várt módon, módosítsa a kernel paramétert az /etc/sysctl fájlba.conf Fájl annak biztosítására, hogy az érték megmaradjon a kiszolgáló újraindítása után.
# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192
ha úgy dönt, hogy közvetlenül a fájlban állítja be a sysctl-w használata nélkül, akkor újra kell töltenie a fájlt:
# sysctl -p
ellenőrizheti a jelenleg beállított korlátokat:
# 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