IT TIP

Linux의 최대 프로세스 수

itqueen 2020. 12. 30. 19:58
반응형

Linux의 최대 프로세스 수


Linux 시스템에서 가능한 프로세스 수의 최대 제한은 얼마입니까? 어떻게 찾을 수 있습니까?


커널은이 정보를 procfs다음 위치로 내 보내야합니다 .

cat /proc/sys/kernel/pid_max

시스템이 지원할 수있는 고유 한 프로세스 식별자의 최대 수입니다.

파일이기 때문에 /proc/sys/kernel/pid_max모든 가능한 프로그래밍 언어에서 검사 할 수 있습니다.


sysctl kernel.pid_max

또는

고양이 / proc / sys / kernel / pid_max

Ninefingers가 제안한대로.

완전성을 위해 / proc / syskernel / pid_max에 작성하여 임시로 변경하거나 다음을 추가하여 영구적으로 변경할 수 있습니다.

kernel.pid_max = 4194303

/etc/sysctl.conf에. 4194303은 x86_64의 최대 제한이며 x86의 경우 32767입니다.


귀하의 질문에 대한 짧은 대답 : 리눅스 시스템에서 가능한 프로세스 수는 무제한 입니다.

그러나 사용자 당 프로세스 수에는 제한이 있습니다 (제한이없는 루트 제외).

그리고 아래 명령으로 사용자 제한을 확인할 수 있습니다 ( "최대 사용자 프로세스"에 적합).

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256447
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 128000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 500000
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

특정 사용자 (예 : hadoop)에 대한 프로세스 수 제한을 늘리려면 /etc/security/limits.conf에 아래 항목을 만들어야합니다.

hadoop - nproc 500000

kernel.pid_max제한 요소이지만 최소한 kernel.threads-max. 각 사용자의 기본 nproc ulimit kernel.threads-max가 2 나뉘며 모든 스레드가 사용자의 nproc 제한에 포함 된다는 점에 주목할 가치가 있습니다. 따라서 ps -u $USER사용자가 nproc 제한을 초과하지 않은 것처럼 보일 ps -L -u $USER있지만 매우 다른 이야기를 할 수 있습니다.


mongodb 프로세스가로만 만들 수 있다는 것을 의미 했습니까 max nproc = threads-max / 2?

nproc을 무제한으로 늘리려 고하기 때문입니다.

다음 /etc/security/limits.conf과 같이 제한을 mongodb soft nproc unlimited mongodb hard nproc unlimited mongodb soft nofile 50000 mongodb hard nofile 50000 mongodb soft sigpending unlimited mongodb hard sigpending unlimited 두려고했습니다 . 그러나 완전히 재부팅 한 후에도 mongodb 프로세스에 반영되지 않았습니다.

그런 다음 ulimit -u unlimited명령 을 넣으 /etc/init.d/mongodb려고했지만이 파일로 시작하려고 시도한 후에

/etc/init.d/mongodb: 67: ulimit: Illegal option -u

오류. 이것은 kernel.threads-maxmongodb 최대 프로세스 수를 제한합니까?

참조 URL : https://stackoverflow.com/questions/9361816/maximum-number-of-processes-in-linux

반응형