pid_maxを変更した後、LINUXサーバーを再起動する必要がありますか?

pid_maxを変更した後、LINUXサーバーを再起動する必要がありますか?

に保存されている値を変更しました/proc/sys/kernel/pid_max。この新しい値を適用するには再起動する必要がありますか?

答え1

増えたら/proc/sys/kernel/pid_max(たとえばcat 100000 > /proc/sys/kernel/pid_max)この値はすぐに適用されます。再起動する必要はありません。しかし、私はそれを減らそうとしたことがありません(*)

これをテストできます(これは少し見苦しく、本番システムでは実行しないでください)。

i=0 ; while [ $i -lt 10000] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnythingUnlikelyToBeUsedAlready

(echo $i > /dev/null)繰り返しごとに新しい PID を生成します。私のテストケースでは10000が便利ですが、調整できます。以前に設定したとおりに実行#3で繰り返されますpid_max

shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
86880 pts/0    S+     0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready

shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
96882 pts/0    S+     0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready

shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
 7246 pts/0    S+     0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready

shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
17260 pts/0    S+     0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready

shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
27262 pts/0    S+     0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready

ただし、これを実行した後に再起動すると、/proc/sys/kernel/pid_maxデフォルト値に戻ったことがわかります。(通常32768)。

再起動後も設定を維持するには、適切に編集して設定する/etc/sysctl.conf必要がありますkernel.pid_max

たとえば、

kernel.pid_max = 100000

警告する:pid_max境界があるこれはシステムによって異なります。定義する値はこれらの制限内になければなりません。


(*)しかし@ピーターやったら効果がはっきりと出ました。コメントを読む

関連情報