pid_maxを変更する要因は何ですか?

pid_maxを変更する要因は何ですか?

2つのLinuxシステムを確認しましたが、どちらも64ビットですが、PID_MAXは異なります。

システムへ

cat /proc/sys/kernel/pid_max
32768

別の側面では、

 cat /proc/sys/kernel/pid_max 65536

手順マニュアルページから。

proc/sys/kernel/pid_max このファイル (Linux 2.5 の新機能) は PID ラップ値を指定します (つまり、このファイルの値は最大 PID より 1 大きい)。このファイルのデフォルト値である32768は、以前のカーネルと同じPID範囲を生成します。 32ビットプラットフォームでは、32768はpid_maxの最大値です。 64ビットシステムでは、pid_maxは最大2^22(PID_MAX_LIMIT、約400万)の値に設定できます。

どちらのシステムも同じLinuxカーネルを持っています。

今私の質問はpid_maxが変わる要因ですか?よろしくお願いします。

答え1

私が正確に覚えている場合、デフォルト値は最大潜在的なCPU数(rhel)に基づいて計算されます。

各システムでこのコマンドを実行してください。

dmesg | grep -i smp.*allow

または、管理者が以前に制限を変更した可能性があります。

答え2

実際のLinuxボックスではなくドッカーにアクセスしたり、VZコンテナを開くことはできますか?この場合、ホストはPID_MAXを任意の値に制限できます。これはCgroup pidコントローラと呼ばれる比較的新機能です。コンテナが無限にフォークするプロセスを防ぎ、短時間ホストを使用できなくするアンチフォーク爆弾ソリューションです。

関連情報