タイトルにあるように、理由は不明ですが、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
fs.file-max
は、システム上で開くことができるファイル記述子の数に対するシステム全体の制限です合計。プロセスごとの制限には影響しません。
個々のプロセスのファイル記述子の制限を増やすには、limits.conf
を介して行うのが最も簡単です。
# cat /etc/security/limits.d/nofile.conf
* soft nofile 10000
* hard nofile 1000000
これにより、すべてのプロセスにデフォルトで10,000個のファイル記述子が与えられ、必要に応じて(setrlimit
を介して)1,000,000へのアップグレードを要求することができます。