この問題ではさらに多くのスレッドが作成されています。これらのスレッドで言及されたすべてのソリューションを試してみました。しかし、私のために働いた選択肢はありませんでした。だから私はこの新しいスレッドを作成しています。Nginx:[emerg] socket()に失敗しました(24:開いているファイルが多すぎます)
OS:CentOSの1511年2月7日
Nginxは:1.10.0
エラーメッセージ:
Nov 2 23:21:36 localhost nginx: Starting nginx: nginx: [emerg] socket() x.x.x.x:80 failed (24: Too many open files)
Nov 2 23:21:36 localhost nginx: [FAILED]
Nov 2 23:21:36 localhost systemd: nginx.service: control process exited, code=exited status=1
Nov 2 23:21:36 localhost systemd: Failed to start SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
Nov 2 23:21:36 localhost systemd: Unit nginx.service entered failed state.
Nov 2 23:21:36 localhost systemd: nginx.service failed.
のulimit値:
[[email protected] nginx]# ulimit -n
16000
[[email protected] nginx]#
sysctl.confの:
fs.file-max = 752415
nginx.conf:
worker_rlimit_nofile 30000;
nginxのユーザのulimit:
[[email protected] ~]$ ulimit -Sn
16000
[[email protected] ~]$ ulimit -Hn
16000
[[email protected] ~]$
nginxのPID最大オープンファイルの制限:
Max open files 1024 4096 files
わからない、なぜ開いているファイル制限はnginxのプロセスに反映されません。私はprocディレクトリからpid制限値をチェックしました。上記のデフォルト値を示します。値は、両方ともソフトの&ハードリミットの場合は16000でなければなりません。
また、nginxプロセスのサーバー上のopenfilesの制限を確認しました。私はこの問題を解決するために助けてください
[[email protected] ~]# ps -ef | grep nginx
root 4285 1 0 23:12 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/conf/nginx/nginx.conf
nginx 4286 4285 0 23:12 ? 00:00:00 nginx: worker process
root 4308 4290 0 23:12 pts/1 00:00:00 grep --color=auto nginx
[[email protected] ~]# lsof -p 4285 | wc -l
1042
[[email protected] ~]#
誰か:それは1042
openfilesの上に行きません。ありがとう。