• ベストアンサー

Too many open files in system

いつもお世話になっています。 今日、自宅PC(linux)のコマンド画面で $ ls と入力すると、 ls: .: Too many open files in system と表示されるだけで、コマンドが実行できません、 rootでも同じで、ls以外にも他のいくつかのコマンドも使えませんでした。 しばらくしてからもう一度やって見ると普通にできたのでとりあえずはいいのですが、調べて見るとこの現象のせいでHPが見れない、メールサーバーがとまる。等あまりよくないことがわかったので、原因を突きとめたいと思い質問させていただきました。 自分で調べた結果、「ls: .: Too many open files in system」のようなエラーが出るのは「file descriptor」を使い切っていることが原因であるということまでは分かりました。(合ってますかね^^;) なので、できればこの「file descriptor」を大量消費しているプロセスを突き止め、それをやめさせ、回復する方法を知りたいのです。よろしくお願いします。 サーバーは、http、mailサーバーになっていて、java、postgresqlなども動いています。

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

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.5

(補足2) TurboLinux 7.0で確認してみたら、lsofコマンドがありますので、 実行してみて下さい。 # lsof | less lsofはプロセスによってオープンされているファイル情報を 表示するコマンドです。 たぶん、今のままではlsofを実行しても、too many open... のエラーが出るでしょうから、いくつかのサービスを止めたりして、 どのプロセスがファイルをたくさん開いているか調べるのが良いかと思います。

lafi
質問者

お礼

xjdさん回答ありがとうございます。 無事コマンドは実行できました。(再起動したからですかね) コマンドを実行すると、ずいぶんたくさん出てきますね。まさかこんなにファイルを開いているとは、、、 ざっと見た感じ、httpd関連がかなり使っているようなので、何とかしたいですね。 助かりました。ありがとうございます。 多分この「file descriptor」のことでまた質問すると思うので、そのときはまたよろしくお願いします。

その他の回答 (4)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.4

(補足) そういえば以前、postgresqlのバグで同じ現象になった 事を思い出しました。 selectがfile descriptorをクローズしなかったのが原因だったと覚えています。 一度バージョンなど確認ください。

lafi
質問者

お礼

問題なのはver6.2.1ですよね? いま使用中のpostgresqlのバージョンは7.1.2なので大丈夫だと思います。(このバージョンがfile descriptorをクローズし忘れているというバグに対応済みであるかどうかまでは、はっきりと調べられなかったんですけど^^;) 回答ありがとうございました。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

ディスクの空き容量が無くなってる! なんて事はないでしょうか? df -h で各パーティションの空き容量はどうですか?

lafi
質問者

お礼

xjdさん回答ありがとうございます。 >ディスクの空き容量が無くなってる! これはまずないです。80GBありますからね~ 一応調べて見たのですが、どのパーティションも使用率15%を超える場所はありませんでした。 (最大でも3GBしか使ってません)

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.2

>あのあと、HPサーバーが一部止まった(CGIが動かない)うえ、コマンドプロントも開かない状態になってしまい、けっこう切実な問題になってきました^^; >できれば回避策を教えていただきたいのですが、、、 うーん、どこに原因があるのかが問題ですがアップデータをまずは当ててみてはどうでしょう。

参考URL:
http://www.turbolinux.co.jp/update/update_history/7/
lafi
質問者

お礼

度々ありがとうございます。 そうですね。そうすることにします。 前のお礼で書いた問題は、再起動することで直った(?)のでこれからも定期的に再起動することでとりあえず回避しておきます。 そこでもう一つご質問が、、 ”どこに原因があるか”というのは調べることができるのですか?

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.1

OSのバグですね. もうすでにバグレポートは多数送られているようですので改善されたバージョンを待つしかないかと思います。

lafi
質問者

お礼

asucaさん回答ありがとうございます。 OSのバグなんですか、、、 あのあと、HPサーバーが一部止まった(CGIが動かない)うえ、コマンドプロントも開かない状態になってしまい、けっこう切実な問題になってきました^^; できれば回避策を教えていただきたいのですが、、、 バグってことは無いんですかね。 (いま使ってるのは、TurboLinux7.0です。)

関連するQ&A