• ベストアンサー

Linux ファイルディスクリプタの変更

現在、Javaで開発されたアプリケーションのシステム運用を行っています。 (OSはLinux、APサーバーはTomcatを使用) あるバグ解析のため、ログ出力を追加したところ Socket Exception:Too many open filesが発生しました。 対応を調べたところ、ファイルディスクリプタを増やして対応とありましたので ファイルディスクリプタを増やして対応しようと思います。 ここで疑問なのですがファイルディスクリプタは何を基準に増減値を決定するのか また、ファイルディスクリプタを変更する際に発生しうる問題は何かあるのでしょうか? 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

> あるバグ解析のため、ログ出力を追加したところ > Socket Exception:Too many open filesが発生しました。 それ、むしろログ出力のコードで close() し忘れのバグ混入してないですか? 先に open 中の fd list 見て変なところないか確認してからの方がいい気がします。

babolat0831
質問者

補足

log4Jを利用しログを出力しています。 その際にもクローズ処理を行うのでしょうか?

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

上限は、普通は1024です。bashの ulimit -n で表示できます。 同時に1024のファイルをオープンすることは考えられないため、プログラムバグでcloseもれがあると思われます。デバッグしましょう。 バグがあるままでは、いくら上限を大きくしても駄目だし、そもそも正しく出力されません。

関連するQ&A