私のLinuxサーバーでは、突然「開いたファイルが多すぎます」エラーが発生する原因は何ですか?

私のLinuxサーバーでは、突然「開いたファイルが多すぎます」エラーが発生する原因は何ですか?

私のホスティング会社は、約1週間前に私のサーバーを最新のシステムに移動し、1つのクエリに対する小さなORDERBYの問題を除いて、すべてがスムーズに実行されています。

昨夜突然私のサイトが遅くなり始め、アップストリームに接続している間にエラーログが「Socket()failed(24:Too Many Open Files)」エラーでいっぱいになったことがわかりました。私のカスタムCMSマネージャに問題があると思って昨夜数時間作業しましたが、突然エラーメッセージが消え、すべてがスムーズに実行され始めました。

今日の午後からサーバーに再び問題が発生し始めました。コンピュータを再起動すると、すぐにnginxエラーログが同じエラーでいっぱいになり始めました。今回も約10分後にエラーが停止し、それ以降サーバーはスムーズに実行されています。

私はUNIX管理者ではありませんが、かなり論理的に考えることができます。ここで何が起こっているのかわかりません。

答え1

確認できますulimit-nシステムが許可するファイルの数を確認するには、nginxがrootとして実行されていない場合は、ユーザーにそれを設定できます。一時修正でまだ最大値に設定されていない場合は、値を増やすことができます。/etc/security/limits.conf。また、アプリケーションが接続をアクティブに保ち、閉じないようにしてください。アプリケーションの問題のようです。

ユーザー名の代わりに*を使用すると、すべてのユーザーに適用されます。

/etc/security/limits.conf

*     soft   nofile  1024        
*     hard   nofile  65535

関連情報