25 stycznia, 2022

Geek Diary

post wyjaśnia, w jaki sposób można zmienić limity semaforów jądra na serwerze CentOS/RHEL.

parametry jądra ustawiające limity semaforów

parametry jądra ustawiające limity semaforów to:

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

zmiana limitów semaforów

jeśli limit musi zostać zmieniony, należy wziąć pod uwagę, że (max liczba tablic)*(max semafory na tablicę) >= (Max semafory systemowe). Nie ma potrzeby posiadania większej liczby semaforów w całym systemie, jeśli jest to ograniczone przez liczbę możliwych tablic z maksymalnymi semaforami na to.

na przykład:

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

w tym przykładzie musimy zwiększyć maksymalny Limit semaforów na tablicę ze 128 do 192. Max semafory systemowe można również zwiększyć do 48000 ( 250*192 = 48000 >= 32000) lub utrzymywane jako 32 tys. W tym scenariuszu utrzymuje się na poziomie 32 tys.

aby ustawić parametr jądra dynamicznie tzn. bez konieczności restartu serwera.

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

jeśli wszystko jest w porządku z systemem zgodnie z oczekiwaniami, zmodyfikuj parametr jądra, dodając go do / etc / sysctl.plik conf zapewniający utrzymanie wartości po ponownym uruchomieniu serwera.

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

jeśli zdecydujesz się ustawić go bezpośrednio w pliku bez użycia sysctl-w, będziesz musiał ponownie załadować plik:

# sysctl -p

możesz zweryfikować limity aktualnie ustawione przez:

# 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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.