리눅스가 열 수있는 파일 수를 어떻게 제한합니까?


11

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


그러나 이것은 내 자바 프로그램에 오류가 발생

답변:


7

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

* - nofile 50000

limits.conf수행 * hard nofile 50000및 / 또는 * soft nofile 50000. 나는 하드와 소프트의 기술적 차이를 모르고 항상 두 가지를 모두 해왔다.
ron

예를 들어 tcsh를 사용하여 SLES 11.4 limit descriptors 50000내에서 주어진 터미널 창 / 세션 내에서 값을 변경하기 위해 수행 할 수 있습니다 .
ron

두 번째 열의 @ron -`는 소프트 한계와 하드 한계를 모두 설정합니다. 다른 값을 원할 경우 별도로 설정하면됩니다. ulimit명령 을 실행하여 언제든지 소프트 한계를 변경할 수 있습니다 ( limitcsh에서 호출 ). 권한이없는 사용자는 절대 하드 한계보다 높을 수 없습니다.
Gilles 'SO- 악마 중지'

하드 만 설정하면 소프트 값이 기본값으로 유지됩니까? 소프트를 설정하고 하드를 설정하지 않은 경우 하드는 기본값으로 유지되거나 본질적으로 소프트는 동일하게 유지됩니까? 소프트> 하드를 설정할 수 있습니까? 소프트는 실제 가치입니까? 질문을 드려 죄송합니다.
ron

@ron 소프트 한계는 하드 한계에서 자동으로 제한됩니다. 하드 한계 만 설정하면 소프트 한계가 max (default_soft_limit, actual_hard_limit)로 설정됩니다.
Gilles 'SO- 악마 그만'

4

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


cat / proc / sys / fs / file-max는 169203이지만 ulimit -n은 1024입니다.

다시 부팅 할 필요가 없습니다. 그냥 실행하십시오 sysctl fs.file-max=123456. ( /etc/sysctl.conf부팅 할 때 sysctl내용 을 호출하는 스크립트로 읽습니다 .)
Gilles 'SO-stop

3
ulimit -n

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

/proc/sys/fs/file-max

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


cat / proc / sys / fs / file-max는 169203이지만 ulimit -n은 1024입니다.

1

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

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

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


1
많은 고객들과 연결하고 싶습니다

1

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


SLES 11.4에서 나는 설정 nofilelimits.conf성공적으로 100000을 할 수 있습니다. 너무 큰 값을 설정하면 SSH로 후속 로그인을 할 수 없다는 것을 증명할 수 있으며 시스템을 복구하기 위해 limits.conf에서 해당 값을 수정하기 위해 DVD에서 부팅해야했습니다.
ron

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.