私は最近Tomcatサーバーでエラーが発生しました。「開いているファイルが多すぎます」というエラーが発生し、サーバーのSSLコネクタに使用されているキーストアファイルを参照しています。誰がこれがどこから来ているのか分かりませんか?私たちのサーバーはかなりの数の接続を受け取りますが、最大許容接続数が150を超えた場合、サーバーは(何らかの理由で)起動しなくなります。 Tomcatにメモリ内のキーストアをキャッシュさせて、接続がファイルから繰り返し読み込む必要がないようにする方法はありますか?"Too many open files"がTomcatキーストアにあります
1
A
答えて
1
私はあなたがLinux上で動作していると仮定します。なぜなら、それが答えを得ているからです。
ulimit -n
これはおそらく、Linux用の「通常」のユーザの制限である1024年を印刷します:
最初のステップは、開いているファイルのためのulimitをチェックし、シェル内のそれ高く設定しようとすることです。高い数字を設定してみてください:
ulimit -n 2048
これが成功した場合は、素晴らしいです。あなたのログインスクリプトにそのコマンドを入れて、あなたは行かなくてはなりません。そうでない場合は、ユーザーごとの制限を増やす必要があります。 this documentによれば、編集したいファイルは/etc/security/limits.conf
です。ちなみに、Tomcatは同じファイルを読み続けるので、おそらくこれは表示されません。 JVMは通常、アプリケーションで使用されるすべてのJARファイルをオープン(およびメモリマップ)し、設定ファイルのオープンファイルハンドルも保持します。キーストアファイルを開くときに限界に達するだけです。
関連する問題
- 1. Too Many Requests ActiveRecord
- 2. -bash:[:too many arguments]
- 3. Ofstream writting too many bytes
- 4. Loop appending too many items
- 5. SQLAlchemy ThreadPoolExecutor "Too many clients"
- 6. PhantomJS open()too slow
- 7. Codeigniter too many requst csrf ajax
- 8. golang postgres too many connections error
- 9. jQuery appending elements too many times
- 10. modelsim Verilog vsim-3365 too many ports
- 11. boost odeint too many arguments to function
- 12. Cloudant 429 too much many model
- 13. bash - if文 - [:too many arguments]
- 14. vim open existing files
どのOS /プラットフォームですか? –
サーバはUbuntu 9.04 Server上で動作していますが、Tomcat 5.5はJDK 6 Update 5 VM上で動作しています。 –
"lsof -utomcatprocessname"を実行して、tomcatを実行しているプロセスが開いたままになっているすべてのファイルをリストする必要があります。何が開いているのか驚くかもしれません。 – Photodeus