nginx에서 겉보기에 일반적인 "너무 많은 파일 디스크립터"오류가 발생했습니다. 많은 검색 후 해결책은 nginx에 사용 가능한 파일 디스크립터 수를 분명히 늘리는 것입니다. 그러나 의미 있고 안전한 방법으로 편안하게 작업 할 수있는 충분한 정보가 없습니다. 대부분의 포럼 / 이메일 스레드가 다루는 주요 사항은 다음과 같습니다.
- OS에는 자체 총 파일 설명자 제한이 있습니다 (시스템에서
cat /proc/sys/fs/file-max
"100678"출력). - 각 사용자는 자신의 한계도 가질 수 있습니다 (그러나 내 시스템에서
ulimit
모든 사용자 출력이 "무제한"으로 실행 되면 자세한 내용은 맨 아래에 업데이트 참조 ) - 몇 사람은 무엇의 라인을 따라 뭔가 말했다 이 사람이 말했다 : '지침 worker_rlimit_nofile, 그것은 않는 운영 체제의 한계입니다 "얼마나 많은"지정하지 않습니다. 지시자 worker_rlimit_nofile은이 한계가 충분하지 않은 경우 빠르고 더러워서이 한계를 확대 할 수 있습니다. ' 따라서 구성 대신에 nginx OS 사용자에 대한 제한을 설정하는 것이 더 낫다는 의미는 무엇입니까?
작업 자당 연결 수보다 큰 worker_rlimit_nofile 값을 던져 하루에 호출 할 수는 있지만 여기서 무슨 일이 일어나고 있는지 실제로 알지 못한다고 생각합니다.
- 작업 자당 한도가 OS 한도보다 낮은 이유는 무엇입니까?
- 내 한계가 무엇인지 어떻게 알 수 있습니까?
업데이트 : 루트 및 일반 사용자 모두에 대해 ulimit는 "무제한"출력, BUT ulimit -Hn
및 ulimit -Sn
두 출력 1024