Ich habe gerade Ubuntu 16.04 installiert und bekomme diese Warnung, wenn ich SmartGit starte :
IOException: User limit of inotify watches reached
Außerdem bekomme ich folgende Warnung tail -f
:
tail: inotify resources exhausted
tail: inotify cannot be used, reverting to polling
Ich bekomme diesen Fehler nie mit Ubuntu 14.04 und die Anwendungen und Dateien, die ich auf dem neuen Ubuntu verwende, sind ziemlich die gleichen, die ich in der vorherigen Version verwendet habe.
Die einzigen relevanten Unterschiede sind, dass ich eine zusätzliche Festplatte auf dem PC hinzugefügt und das Ubuntu-Backup-Tool konfiguriert habe. Kann dieses Problem mit einem zweiten Datenträger oder mit dem Sicherungstool zusammenhängen?
Antworten:
Die aktuelle Standardeinstellung für Xenial ist 8192 (siehe fs / notify / inotify / inotify_user.c in der Kernelquelle). Sie können dies überprüfen, indem Sie die Datei auf stdout drucken:
Sie können die Zahl erhöhen, indem Sie sie beispielsweise auf 16384 verdoppeln, indem Sie Folgendes verwenden:
Denken Sie daran, dass inotify-Uhren Speicher verbrauchen. Ich denke, es sind ungefähr 160 Bytes pro Uhr auf 64-Bit-Systemen.
Um dies dauerhaft festzulegen, fügen Sie einen Eintrag zu /etc/sysctl.conf hinzu, zum Beispiel:
..oder manuell bearbeiten
/etc/sysctl.conf
(Sie benötigen Root-Rechte, um es zu aktualisieren) und dann ausführensudo sysctl -p
quelle
Die obigen Antworten funktionieren prima, aber es erklärt nicht, warum ich mich hier umgesehen habe, um eine vollständige Antwort zu erhalten.
Warum?
Programme, die Dateien wie Dropbox, Git usw. synchronisieren, verwenden inotify, um Änderungen am Dateisystem festzustellen. Die Grenze kann durch gesehen werden -
Für mich zeigt es 100000 . Wenn dieses Limit nicht ausreicht, um alle Dateien in einem Verzeichnis zu überwachen, wird dieser Fehler ausgegeben.
Anzahl der inotify-Beobachter erhöhen (Kurzversion):
Wenn Sie Debian, RedHat oder eine andere ähnliche Linux-Distribution ausführen, führen Sie Folgendes in einem Terminal aus:
Wenn Sie ArchLinux ausführen, führen Sie stattdessen den folgenden Befehl aus (siehe hier, warum):
Fügen Sie es dann in Ihr Terminal ein und drücken Sie die Eingabetaste, um es auszuführen.
Technische Details:
Listen verwendet standardmäßig inotify unter Linux, um Verzeichnisse auf Änderungen zu überwachen. Es ist nicht ungewöhnlich, dass die Anzahl der Dateien, die Sie überwachen können, auf ein Systemlimit begrenzt wird. Beispielsweise ist das Inotify-Limit von Ubuntu Lucid (64 Bit) auf 8192 festgelegt.
Sie können das aktuelle Überwachungslimit für Inotify-Dateien ermitteln, indem Sie Folgendes ausführen:
Wenn dieses Limit nicht ausreicht, um alle Dateien in einem Verzeichnis zu überwachen, muss es erhöht werden, damit Listen ordnungsgemäß funktioniert.
Sie können ein neues Limit vorübergehend festlegen mit:
Wenn Sie Ihr Limit dauerhaft festlegen möchten, verwenden Sie:
Möglicherweise müssen Sie auch auf die Werte von max_queued_events und max_user_instances achten, wenn sich Listen weiterhin beschwert.
Quelle: https://github.com/guard/listen/wiki/Erhöhen-der-Anzahl-der-Melder
quelle
Sie können das vorhandene Limit überprüfen und es basierend auf Ihren Anforderungen ändern
To Check : cat /proc/sys/fs/inotify/max_user_watches To Alter : sudo sysctl fs.inotify.max_user_watches=524288
Dadurch wird der Fehler behoben.
quelle