Linux 에서 ulimit 설정을 수정하는 최대 프로세스 수
최근 Linux 서버에 애플리케이션을 게시하는 동안 다음과 같은 예외가 발생했습니다.
caused by: java.lang.out of memory error: unant . thread.start (nativemethod)
at java.lang.thread.start (thread.java: 64)
위의 오류 메시지의 본질은 Linux 운영 체제에서 더 많은 프로세스를 생성할 수 없어 오류가 발생한다는 것입니다. 따라서 이 문제를 해결하려면 Linux 를 수정하여 더 많은 프로세스를 만들 수 있도록 해야 합니다.
최대 Linux 프로세스 수 수정
ulimit -a 를 통해 현재 Linux 시스템의 일부 시스템 매개 변수를 볼 수 있습니다.
$ ulimit-a
코어 파일 크기 (blocks,-c)
데이터 세트 크기 (kbytes, -d) unlimited
scheduling priority (-e)
filesize (blocks, -f) unlimited
pending signals (-I) 62357
최대 잠금 메모리 (kbytes,-l) 64
; -m) unlimited
openfiles (-n) 65536
pipesize (512 bytes,-p) 8
POSIX message -q) 8192
real-time priority (-r)
stack size (kbytes,-s) 124
CPU -t) unlimited
max user processes (-u) 496
virtual memory (kbytes, -v) unlimited
filelocks (-x) unlimited
이러한 매개 변수 중 일반적으로 한 프로세스에서 열 수 있는 최대 파일 수, 즉 open files 에 더 많은 관심을 기울이고 있습니다. 시스템에서 만들 수 있는 최대 프로세스 수는 max user processes 매개 변수입니다. Ulimit -u 496 을 사용하여 max user processes 의 값을 수정할 수 있지만 현재 터미널의 이 session 에서만 유효하며 다시 로그인한 후에도 시스템 기본값이 사용됩니다.
올바른 수정 방법은/etc/security/limits.d/9-nproc.conf 파일에서 값을 수정하는 것입니다. 이 파일에 포함된 내용을 먼저 살펴보십시오.
$ cat/etc/security/limits.d/9-nproc.conf
위 파일에서 496 값만 수정하면 됩니다.
관련 읽기:
RHEL6 의 ulimit 에 대한 nproc 제한 사항 /Linux/ 212-12/76255.htm
Linux/UNIX ulimit 명령 상세 정보/ 212-6/63451.htm
Linux 인증 상담: Linux ulimit 명령/Linux/211-6/37269.htm
Linux 호스트 통과