ホームページ >バックエンド開発 >PHPチュートリアル >Nginx之——nginx:accept failed 24: 開いているファイルが多すぎます

Nginx之——nginx:accept failed 24: 開いているファイルが多すぎます

WBOY
WBOYオリジナル
2016-07-29 08:49:081381ブラウズ

転載する場合は出典を示してください: http://blog.csdn.net/l1028386804/article/details/51425325

nginx を使用し、トラフィックが非常に多いサーバーがあり、エラー ログに次のエラーが報告され続けています。

2016/05/16 08:53:49 [alert] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53:49 [alert] 13576#0: accept() () 失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53:49 [アラート] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53 :49 [アラート] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53:49 [アラート] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます) )
2016/05/16 08:53:49 [alert] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53:49 [alert] 13576#0: accept() () 失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53:49 [アラート] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53 :49 [アラート] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます)
2016/05/16 08:53:49 [アラート] 13576#0: accept() が失敗しました (24: 開いているファイルが多すぎます) )

解決策:

centos5.3 では、ulimit -n は 1024 です。Nginx 接続の数が 1024 を超えると、次のエラーが error.log に表示されます:

[alert] 12766#0: accept() failed (24: 開いているファイルが多すぎます)

ulimit -n 655350 を使用して、開いているファイルの数を十分な数に設定し、同時に nginx.conf を変更し、worker_rlimit_nofile 655350 (error_log と同じレベル) を追加します

これにより、問題を解決できます。 Nginx 接続が多すぎる問題、Nginx は高い同時実行をサポートできます。 <nginxも変更>

さらに、ulimit -nはmysqlの同時接続数にも影響します。これを改善すると、mysql の同時実行性も向上します。

注: ulimit -n 2048 による変更は現在のシェルに対してのみ有効であり、終了後は無効になります。

変更方法

ulimit の値を永続的に変更したい場合は、/etc/profile に ulimit 変更コマンドを配置する必要があります。この方法は非常に不便です。

/etc/security/limits.conf

/etc/security/limits.conf 形式のファイルには、

* ソフト nofile 655360

* ハード nofile 655360

star などの非常に詳細なコメントが含まれています。この数字は世界的な状況を表し、soft はソフトウェア、hard はハードウェア、nofile は開いているファイルの数を表します。

上記の 2 行をlimits.conf ファイルに追加します。

さらに、limits.conf ファイルの設定を有効にするには、pam_limits.so ファイルが起動ファイルに追加されていることを確認する必要があります。 /etc/pam.d/login ファイルを確認してください。このファイルには次の内容が含まれています。

session required /lib/security/pam_limits.so

変更後に再度ログインすると、効果を確認できます。ulimit - を使用して確認できます。 n.

上記では、Nginx - nginx: accept failed 24: Too many open files (関連コンテンツを含む) について紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。