Wenn ich es versuche tail -f catalina.out
, erhalte ich den Fehler:
tail: inotify cannot be used, reverting to polling: Too many open files
Ich habe die Antwort in diesem Beitrag ausprobiert: Zu viele offene Dateien - wie man den Täter findet
lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head
Als ich den obigen Befehl ausgeführt habe, war die Ausgabe
17 6115
13 6413
10 6417
10 6415
9 6418
9 6416
9 6414
8 6419
4 9
4 8
Ich sehe keinen Prozess, bei dem 1024 Dateien geöffnet sind. Ist die Anzahl der geöffneten Dateien nicht 17,13,10,10,9? Oder verstehe ich das falsch? Und alle diese waren Bash, SSHD, Apache2, Tomcat hatte Nummer 4.
Ich habe auch lsof | grep tail | wc -l
was zurückgegeben 20
. Diese Zahlen sind nicht riesig, warum tail -f catalina.out
scheitert das?
tail
Botschaft war etwas anders:tail: inotify resources exhausted
. Diese Antwort hat mir geholfen. Sie können auchsudo sysctl -w fs.inotify.max_user_watches=1048576 && sysctl -p
testen, ob dies hilft, ohne es dauerhaft zu ändern. Dieser Beitrag hilft auch nefaria.com/2014/08/tail-inotify-resources-exhaustedIch denke, dass die Antwort nicht vollständig ist (es sagt nichts über die maximale Anzahl der auf dem System geöffneten Dateien aus).
Bezüglich der maximalen Anzahl geöffneter Dateien gibt es zwei Grenzen:
Maximale Anzahl offener Dateien pro Prozess .
ulimit -n
ulimit -n new_limit_number
Hier ist ein Befehl, um die Top-10-Prozesse mit vielen geöffneten Dateien abzurufen:
Maximale Anzahl offener Dateien pro System .
cat /proc/sys/fs/file-max
echo new_limit_number > /proc/sys/fs/file-max
lsof | wc -l
quelle
Höchstwahrscheinlich sind Ihnen die
inotify
Uhren ausgegangen . Wahrscheinlich führen Sie einige Dateisynchronisierungstools (z. B. Dropbox) im Hintergrund aus?Unter Linux verwendet die interne Implementierung von
tail -f
command standardmäßig deninotify
Mechanismus, um Dateiänderungen zu überwachen. Wenn Ihnen alleinotify
Überwachungen ausgehen (standardmäßig 8192),inotify -f
müssen Sie auf Abfragen umschalten, um Änderungen an dieser Datei zu erkennen.Natürlich können Sie die maximale Anzahl der
inotify
Uhren ändern .Referenz:
http://www.quora.com/How-is-tail-f-implemented
http://peter-butkovic.blogspot.com/2013/08/tail-inotify-resources-exhausted.html
https: // serverfault.com/questions/510708/tail-inotify-cannot-everwendet werden-reverting-to-polling-too-many-open-files
quelle
sysctl fs.inotify.max_user_instances
würde Limit pro User bekommen fürinotify
.Ich habe es erlebt, und alle systemweiten Grenzwerte waren hoch genug, aber die Benutzereinstellungen sind normalerweise relativ niedrig. Sie können sie erhöhen
sysctl.conf
und neu ladensysctl -p
.quelle
Lauf
um zu überprüfen, ob zu viele Tail-Befehle ausgeführt werden, z. B. ein Spawn von Crontab.
quelle
root 20161 0.0 0.0 11132 1044 pts/0 S+ 17:27 0:00 grep tail
Überprüfen Sie Ihre Kernel-Version, es könnte dieser Fehler sein:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1101666
quelle