2016-11-03 4 views
0

この問題ではさらに多くのスレッドが作成されています。これらのスレッドで言及されたすべてのソリューションを試してみました。しかし、私のために働いた選択肢はありませんでした。だから私はこの新しいスレッドを作成しています。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の上に行きません。ありがとう。

答えて

0

問題が見つかりました。 nginx.serviceファイルが原因でnginxが手動でコンパイルされたため作成されませんでした。 nginx.serviceファイルを作成し、ファイルにlimitonfileの値を追加すると、私の問題は解決しました。

希望すると、これはこの問題でヒットした人に役立つことがあります。

関連する問題