この投稿では、Linux システム管理者がオペレーティング システムの各ユーザーに許可されるプロセス数を制限する方法について概説します。プロセスの最大数が許可される場所が 2 つあります (nproc)。 ) を構成できます。
- /etc/security/limits.conf
- /etc/security/limits.d/90-nproc.conf (CentOS/RHEL 5,6) および /etc/security/limits.d/20-nproc.conf (CentOS/RHEL 7)
pam_limits の man ページから
デフォルトでは、制限は /etc/security/limits.conf から取得されます 構成ファイル。次に、/etc/security/limits.d/ の個々の *.conf ファイル ディレクトリが読み込まれます。ファイルは「C」ロケールの順に解析されます。個々のファイルの効果は、すべてのファイルが解析順に連結された場合と同じです。モジュールオプションで構成ファイルが明示的に指定されている場合、上記のディレクトリ内のファイルは解析されません。現在の nproc ソフト/ハード制限の表示
Red Hat Enterprise Linux システムは、2 種類の値を使用して制限を定義します:soft そしてハード .違いは、「ソフト」制限は「ハード」制限まで調整できるのに対し、「ハード」制限は減らすことしかできず、ユーザーが持つことができる最大リソース制限であることです.
ユーザーが「ulimit -n」コマンドを実行するたびに、「ソフト」制限が表示されます。したがって、「/etc/security/limits.conf」ファイルにハード値が設定されている場合、デフォルトでは表示されません。
– ソフト リミットを表示するには、以下のコマンドを使用します:
# ulimit -u -S
– 同様に、ハード リミットを表示するには、以下のコマンドを使用します:
# ulimit -u -H
nproc (ハードおよびソフト) 制限の設定方法
<強い>1.ソフト nproc 制限を一時的に設定する
N が「ハード」制限以下の場合、「ハード」制限に合わせて「ソフト」制限を調整できます。
# ulimit -n N
例:
# ulimit -n 1024
上記の値は永続的ではなく、再ログインしても保持されません。上記のコマンドをユーザーの bash プロファイルに入力すると、ユーザーがログインするたびに制限が設定されます。
# vim ~/.bash_profile ulimit -n 1024
<強い>2. nproc のハード/ソフト制限を永続的に設定する
– システム全体で nproc 制限を無制限に設定するには、ファイル /etc/security/limits.d/90-nproc.conf (RHEL5、RHEL6)、/etc/security/limits.d/20-nproc. conf (RHEL7) を読み取る必要があります。デフォルトでは、ルールは /etc/security/limits.conf ファイルから読み取られます。
– さらに、特定のアプリケーションまたはサービス専用の /etc/security/limits.d ディレクトリに個別の構成ファイルを作成できます。
– ユーザー プロセスのデフォルトの制限は、ファイル /etc/security/limits.d/90-nproc.conf (RHEL5、RHEL6)、/etc/security/limits.d/20-nproc.conf で定義されています。 (RHEL7)、フォーク爆弾などの悪意のあるサービス拒否攻撃を防止します。
nproc のハード/ソフト制限を設定するには、次の構文を使用します。
# vi /etc/security/limits.conf [domain] [type] [item] [value]
ここでは、
[ドメイン] ユーザー名、グループ名、またはワイルドカード エントリを指定できます。
[type] 制限のタイプを示し、次の値を持つことができます:
- ソフト :これはユーザーが変更できるソフト制限です
- 難しい :これは、スーパー ユーザーによって設定され、カーネルによって適用されるソフト リミットの上限です
[アイテム] 制限を設定するリソースです。
nproc 制限の設定例
以下は、ファイル /etc/security/limits.conf ファイルと /etc/security/limits.d/90-nproc.conf (RHEL5、RHEL6)、/etc/security/limits を使用して nproc 値を設定するいくつかの例です。 d/20-nproc.conf (RHEL7):
1. 次の例では、limits.conf に 2047 のハード リミットがあるため、nproc リミットは 2047 に設定されています。
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 2047 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 root soft nproc unlimited test soft nproc 10023
# ulimit -u 2047
2. 最後のエントリが「test soft nproc 1022」であるため、ここでは 1022 が使用されます。最大ハード制限は「1025」になります。
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 2048 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1025 test soft nproc 1022
# ulimit -u 1022
3. ここでは「test hard nproc 1025」が設定されているため 1025 が使用され、ソフト リミットがハード リミットを超えているため「test soft nproc 1066」が使用されています。
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 1001 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1025 test soft nproc 1066
# ulimit -u 1025
4. ここで 1066 が使用されているのは、最後のエントリが「test soft nproc 1066」であり、1066 がハード リミットを超えていないためです。
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 1001 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1100 test soft nproc 1066
# ulimit -u 1066/etc/security/limits.conf ファイルについて