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경계가 있다이는 시스템에 따라 다릅니다. 정의하는 값은 이러한 제한 내에 있어야 합니다.


(*) 하지만@베드로했더니 효과가 확연히 나더라구요댓글 읽기.

관련 정보