GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL でカーネル セマフォの制限を変更する方法

この投稿では、CentOS/RHEL サーバーでカーネル セマフォの制限を変更する方法について説明しています。

セマフォ制限を設定するためのカーネル パラメータ

セマフォの制限を設定するためのカーネル パラメータは次のとおりです。

kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
SEMMSL - max semaphores per array
SEMMNS - max semaphores system wide
SEMOPM - max ops per semop call
SEMMNI - max number of arrays

セマフォ制限の変更

制限を変更する必要がある場合は、(配列の最大数)*(配列あたりの最大セマフォ)>=(システム全体の最大セマフォ) を考慮する必要があります。 .配列ごとに最大セマフォを持つ可能な数の配列の量によって制限される場合、システム全体でより多くのセマフォを持つ必要はありません。

例:

# sysctl -a| grep kernel.sem
kernel.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.sem
kernel.sem = 250 32000 32 192

sysctl -w を使用せずにファイルに直接設定する場合は、ファイルをリロードする必要があります:

# sysctl -p

現在設定されている制限を確認するには:

# ipcs -ls
------ Semaphore Limits --------
max number of arrays = 192
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

セマフォは、複数のプロセスによる共有リソースへのアクセスを制御するために使用されるカウンターのようなものです。これは、別のプロセスが特定のリソースに対して操作を実行しているときに、プロセスが特定のリソースにアクセスするのを防ぐためのロック メカニズムとしてよく使用されます。セマフォ値は、変数 SEMVMX、「セマフォ最大値」によって設定された最大値まで、インクリメントまたはデクリメントできます。


Cent OS
  1. CentOS / RHEL 7 :タイムゾーンを変更する方法

  2. CentOS / RHEL :ファイルシステムの UUID を変更する方法

  3. RHEL/CentOS 7 で Apache のデフォルト ポートを変更する方法

  1. CentOS 7 /RHEL7でホスト名を設定または変更する方法

  2. CentOS /RHEL8/7/6でタイムゾーンを変更する方法

  3. CentOS / RHEL 7 :マシン ID を変更する方法

  1. CentOS/RHEL でファイルシステムのラベルを変更する方法

  2. CentOS / RHEL 6 :kdump の設定方法

  3. CentOS / RHEL 7 :kdump の設定方法