tail: inotify kann nicht verwendet werden, Rückkehr zum Polling: Zu viele offene Dateien

tail: inotify kann nicht verwendet werden, Rückkehr zum Polling: Zu viele offene Dateien
tail: inotify cannot be used, reverting to polling: Too many open files

Ich verwende Apache- und Tomcat-Server auf Ubuntu (AWS ec2). Immer wenn ich versuche, catalina.outTomcat zu verfolgen, werden zu viele Dateien geöffnet. Ich kann sie jedoch mit vi anzeigen.

Nachdem ich im Internet gesucht hatte, habe ich den folgenden Befehl ausprobiert:

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

Mit Ergebnissen unten

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

Als ich gerade lsof ausgeführt habe, waren die Prozess-IDs: 5650 waren Bash, 5178 war wieder Bash und die anderen waren SSHD, Top und Apache2.

Warum gibt es so viele geöffnete Dateien von Bash, Top und SSHD? Wie kann ich diese Dateien schließen? Bringt es etwas, diese Prozesse zu beenden? Wird die Anzahl von selbst abnehmen oder muss ich etwas tun? Momentan funktioniert alles wie erwartet, außer dass tail -f mir zu viele geöffnete Dateien anzeigt.

Ich verwende Top und SSH häufig zum Server. Aber warum geben sie die Dateien nicht frei? ODER verbinde ich die falschen Punkte.

Antwort1

Wahrscheinlich sind Ihnen die Inotify-Uhren ausgegangen. Standardmäßig liegt der Wert bei absurd niedrigen 8192.

Überprüfen Sie Ihren aktuellen Wert durch:

sysctl fs.inotify.max_user_watches

Ändern Sie es dann in etwas Sinnvolleres, indem Sie /etc/sysctl.confeine darin enthaltene Datei bearbeiten und Folgendes hinzufügen:

fs.inotify.max_user_watches = 524288

(oder welcher Wert auch immer) und führen Sie es dann aus, sysctl -pdamit es wirksam wird.

Antwort2

Sie können versuchen, fs.inotify.max_user_instances zu erhöhen:

sysctl fs.inotify.max_user_instances=512

Antwort3

Vielleicht ist es ein Ubuntu-Kernel-Fehler, überprüfen SieDasvom Launchpad-Bugtracker.

Und aktualisieren Sie bei Bedarf Ihren Kernel!

verwandte Informationen