web-dev-qa-db-ja.com

テール:inotifyは使用できず、ポーリングに戻ります:開いているファイルが多すぎます

tail: inotify cannot be used, reverting to polling: Too many open files

Ubuntu(AWS ec2)でApacheサーバーとTomcatサーバーを実行しています。 Tomcatのcatalina.outを調整しようとすると、開いているファイルが多すぎます。ただし、viを使用して表示することはできます。

インターネットで検索した後、次のコマンドを試しました。

lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head

以下の結果

 17 5650
 17 5178
 13 5972
 10 5976
 10 5974
  9 5977
  9 5975
  9 5973
  8 5978
  4 9

プロセスIDのlsofを実行したとき、5650はbash、5178は再びbash、その他はsshd、top、Apache2でした。

なぜbash、top、sshdのオープニングファイルが大量にあるのですか?これらのファイルを閉じるにはどうすればよいですか?これらのプロセスを殺すことは何か良いことをしますか?数は自然に減少しますか、それとも何かする必要がありますか?現在、tail -fで開いているファイルが多すぎることを除いて、すべてが期待どおりに機能しています。

私は多くのサーバーにtopとsshを使用しています。しかし、なぜ彼らはファイルをリリースしないのですか? OR間違ったドットを接続していますか。

4
user23577

おそらくあなたはinotifyの時計を使い果たしました。デフォルトでは、それはとてつもなく低い8192です。

次の方法で現在の値を確認してください。

sysctl fs.inotify.max_user_watches

次に、/etc/sysctl.confまたはそれに含まれるファイルを編集し、以下を追加して、より合理的なものに変更します。

fs.inotify.max_user_watches = 524288

(または任意の値)そしてsysctl -pを実行して有効にします。

6
Michael Hampton

Fs.inotify.max_user_instancesを増やしてみてください:

sysctl fs.inotify.max_user_instances=512
1
user1948518

たぶんそれはUbuntuカーネルのバグかもしれません。ランチパッドバグトラッカーから this を確認してください。

そして、必要に応じてカーネルをアップグレードしてください!

0
Zskdan