Linux에서는 최대 열린 파일을 무제한으로 설정합니다.가능한?
문제
열린 파일의 최대 수를 "무한" 값으로 설정할 수 있습니까, 아니면 숫자여야 합니까?
데몬 사용자에 대한 설명자 제한을 "무제한"으로 설정해야 한다는 요구 사항이 있었고 이것이 가능한지 또는 이를 수행하는 방법을 확인하려고 합니다.일부 메일링 리스트에서 사용할 수 있는 "최대" 값을 참조하는 것을 보았습니다(예:"myuser hard nofile max"이지만 지금까지 제가 참조한 매뉴얼 페이지와 참고 자료에서는 이를 뒷받침하지 않습니다.
'max' 또는 이와 유사한 것을 사용할 수 없는 경우 (이론적으로) 최대 파일 수를 결정하는 방법을 알고 싶습니다. 그래서 제가 선택한 숫자에 대한 근거가 있습니다.상한을 얻는 더 합리적인 방법이 있다면 100000000 등을 사용하고 싶지 않습니다.
중요한 경우 RHEL 5를 사용하고 있습니다.
업데이트: 질문을 쓰는 데 있어서 나는 바보입니다.이상적으로는 Limits.conf 파일("max"의 출처)에서 이 작업을 수행하고 싶습니다.그러면 대답이 바뀌나요?
의견을 보내주셔서 감사합니다.이것은 제가 작성하고 있는 데몬이 아닌 JBOSS 인스턴스를 위한 것이므로 setrlimit()가 제게 유용한지 모르겠습니다.하지만 Jefromi - 저는 Infinity의 정의를 좋아합니다. :) 파일 설명자가 "두 개의 반바지와 포인터"임을 암시하는 게시물을 보았으므로 대략적인 상한을 계산할 수 있어야 합니다.
해결책
POSIX를 사용하면 RLIMIT_NOFILE
리소스 제한 RLIM_INFINITY
사용하여 setrlimit()
.이것이 의미하는 바는 시스템이 이 리소스 제한을 시행하지 않는다는 것입니다.물론 구현에 따라 여전히 제한이 있을 수 있습니다(예: MAXINT
) 및 기타 리소스 제한사항(예:사용 가능한 메모리).
업데이트: RHEL 5의 최대값은 1048576(220) 이 한도(NR_OPEN
~에 /usr/include/linux/fs.h
) 루트의 경우에도 무한대를 포함하여 더 큰 값을 허용하지 않습니다.따라서 RHEL 5에서는 이 값을 다음에서 사용할 수 있습니다. /etc/security/limits.conf
그리고 그것은 무한대에 도달할 수 있을 만큼 가깝습니다.
요전 리눅스 커널 패치 그러나 이 제한을 무한대로 설정할 수 있도록 적용되었습니다. 이후 의도하지 않은 결과로 인해 원래 상태로 되돌아갔습니다..
다른 팁
라인을 시도하십시오
<domain> -
교체 <domain>
가장 간단한 경우 사용자 이름으로.
그만큼 Limits.conf Man Page 말한다
- for enforcing both soft and hard resource limits together. Note, if you specify a type of '-' but neglect to supply the item and value fields then the module will never enforce any limits on the specified user/group etc. .