제목에서 알 수 있듯이 Nginx 서버가 계속 충돌하는 것 같습니다. 이유는 알 수 없습니다.
내 오류 로그에 문제가 발생할 수 있는 몇 가지 힌트가 있습니다.
열린 파일 제한을 늘리려고 시도했는데 어느 정도 영향을 주었지만 별 소용이 없었습니다.
2015/09/29 17:18:01 [crit] 20560#0: accept4() failed (24: Too many open files)
2015/09/29 17:18:01 [crit] 20560#0: accept4() failed (24: Too many open files)
제한을 늘리려고 했지만 오류 로그에도 이 내용이 표시됩니다.
2015/09/29 17:18:02 [alert] 20632#0: setrlimit(RLIMIT_NOFILE, 300000000) failed (1: Operation not permitted)
2015/09/29 17:18:02 [alert] 20633#0: setrlimit(RLIMIT_NOFILE, 300000000) failed (1: Operation not permitted)
2015/09/29 17:18:02 [alert] 20560#0: recvmsg() truncated data
파일 제한을 늘리는 권한을 어떻게 부여하나요?
또한 이것이 내 서버가 충돌하는 이유이기도 합니까?
감사합니다!
방금 더 많은 데이터를 확인하고 파일을 편집했는데 하드 제한을 확인하면 어떤 이유에서인지 4096이라고 표시됩니까?
root@nalsec:~# sysctl -p
net.ipv4.ip_forward = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.eth0.accept_ra = 0
fs.file-max = 2500000000000000000
root@nalsec:~# ulimit -Hn
4096
내 fs.file-max와 대조됩니다.
이것을 시도했는데 권한이 없다고 나옵니다(나는 루트입니다)
root@nalsec:~# ulimit -Hn 1000000000
-bash: ulimit: open files: cannot modify limit: Operation not permitted
이 파일을 이미 편집했는데 아무 소용이 없습니다. nano /etc/security/limits.conf
#@faculty hard nproc 50
#ftp hard nproc 0
#ftp - chroot /ftp
#@student - maxlogins 4
# End of file
nginx soft nofile 10240000000000000000000
nginx hard nofile 10240000000000000000000
* hard nofile 10240000000000000000000000
* soft nofile 10240000000000000000000000
root hard nofile 10240000000000000000000000
root soft nofile 10240000000000000000000000
www-data soft nofile 1024000000000000000
www-data hard nofile 1024000000000000000
답변1
fs.file-max
에 대한 시스템 전체 제한입니다.총시스템에서 열 수 있는 파일 설명자 수입니다. 프로세스별 제한에는 영향을 미치지 않습니다.
개별 프로세스의 파일 설명자 제한을 늘리려면 다음을 통해 수행하는 것이 가장 쉽습니다 limits.conf
.
# cat /etc/security/limits.d/nofile.conf
* soft nofile 10000
* hard nofile 1000000
setrlimit
그러면 기본적으로 모든 프로세스에 10,000개의 파일 설명자가 제공되며 원하는 경우 1,000,000개(를 통해)로 업그레이드를 요청할 수 있습니다 .