1月 25, 2022
The Geek Diary
この投稿では、CentOS/RHELサーバーでカーネルセマフォの制限を変更する方法について説明しています。
セマフォの制限を設定するためのカーネルパラメータ
セマフォの制限を設定するためのカーネルパラメータは次のとおりです:
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays
セマフォの制限の変更
制限を変更する必要がある場合は、(配列の最大数)*(配列あたりの最大セマフォ)>=(システム全体の最大セマフォ)を考慮する必要があ それあたりの最大セマフォを持つ配列の可能な数の量によって制限されている場合、システム全体でより多くのセマフォを持つ必要はありません。例えば
:
# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128
この例では、配列あたりの最大セマフォの制限を128から192に増やす必要があります。 システム全体の最大セマフォは、次のように増やすこともできます48000 ( 250*192 = 48000 >= 32000) または32000として保たれる。 このシナリオでは、それは32000に保たれます。
カーネルパラメータを動的に設定するため、つまりサーバーの再起動を必要としません。
# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192
期待どおりにシステムですべてが正常である場合は、/etc/sysctlに追加してカーネルパラメータを変更します。サーバーの再起動後に値が保持されるようにするためのconfファイル。
# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192
sysctl-wを使用せずにファイルに直接設定することを選択した場合は、ファイルをリロードする必要があります:
# sysctl -p
現在設定されている制限は、次の方法で確認できます:
# 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