리눅스가 열 수있는 파일 수를 어떻게 제한합니까? 를 사용하여 Java 앱을 실행할 계획

를 사용하여 Java 앱을 실행할 계획 nohup ... &입니다. 이와 같은 명령에는 제한이 적용되어야합니다.



답변

대부분의 시스템은 PAM을 사용 하며에 따라 pam_limits모듈 제한을 설정합니다 /etc/security/limits.conf. 열린 파일에 대한 사용자 별 제한을라고 nofile합니다. 모든 사용자 또는 특정 사용자 또는 그룹에 대해 설정할 수 있으며, 사용자가 재정의 할 수있는 한계 (소프트 한계)와 루트 만 재정의 할 수있는 다른 한계 (하드 한계)를 설정할 수 있습니다. 문서limits.conf매뉴얼 페이지에는 세부 사항이있다. 예를 들어 모든 사람의 한도를 50000으로 올리려면이 줄을 입력하십시오 /etc/limits.conf(로그인 할 때 설정이 적용됨).

* - nofile 50000

답변

당신은 추가 할 수 있습니다 fs.file-max = <your number>/etc/sysctl.conf. 그런 다음 재부팅하십시오.


답변

ulimit -n

프로세스 설정마다 수정 가능

/proc/sys/fs/file-max

또는 호출 된 sysctl 변수를 fs.file-max사용하여 시스템 전체 값을 읽고 설정할 수 있습니다.


답변

이를 위해 ulimit를 사용할 수 있습니다.

http://bloggerdigest.blogspot.com/2006/10/purpose-of-ulimit-linux-command.html

그러한 조정에 의지하기 전에 너무 많은 파일 핸들을 여는 것이 절대적으로 필요한지 확인해야합니다. 루프에서 inputstream.close ()를 잊어 버렸기 때문에 최대 파일 핸들을 늘리는 것은 근본적인 문제를 지연시킬뿐입니다.


답변

프로그램 인스턴스 당 ulimit (Bash 명령-man bash 또는 쉘과 유사 함)를 사용하십시오. 현재 수행중인 작업을 모르는 경우 글로벌 시스템 제한을 사용하지 마십시오 (가능한 DoS).