The Geek Diary
the post selittää, miten ytimen semaforirajoja voidaan muuttaa CentOS / RHEL-palvelimessa.
ytimen parametrit semaforirajojen asettamiseksi
ytimen parametrit semaforirajojen asettamiseksi ovat:
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays
Semaforirajojen muuttaminen
jos raja-arvoa on muutettava, on otettava huomioon, että(ryhmien enimmäismäärä)*(max semaforeja ryhmää kohti) >= (max semaforeja järjestelmän laajuisesti). Järjestelmän laajuisia semaforeja ei tarvitse olla useampia, jos niitä rajoittaa se, kuinka monta mahdollista ryhmää sitä kohden on enintään semaforit.
esimerkiksi:
# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128
tässä esimerkissä meidän on nostettava Max semaforeja per array raja 128: sta 192: een. Max semafores-järjestelmän laajuinen voidaan myös lisätä 48000 ( 250*192 = 48000 >= 32000) tai pidetään 32000: na. Tässä skenaariossa se pidetään 32000: ssa.
aseta ytimen parametri dynaamisesti eli ilman palvelimen uudelleenkäynnistystä.
# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192
jos kaikki on kunnossa järjestelmän odotetusti, muokkaa kernel parametri lisäämällä se / etc / sysctl.conf-tiedosto, jolla varmistetaan arvon säilyminen palvelimen uudelleenkäynnistyksen jälkeen.
# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192
jos haluat asettaa sen suoraan tiedostoon käyttämättä sysctl-w: tä, tiedosto on ladattava uudelleen:
# sysctl -p
voit tarkistaa tällä hetkellä asettamasi rajat:
# 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