Je viens d'installer Ubuntu 16.04 et je reçois cet avertissement lorsque je lance SmartGit :
IOException: User limit of inotify watches reached
De plus, je reçois cet avertissement lors du lancement tail -f
:
tail: inotify resources exhausted
tail: inotify cannot be used, reverting to polling
Je n'ai jamais eu cette erreur avec Ubuntu 14.04 et les applications et les fichiers que j'utilise sur le nouvel Ubuntu sont tout à fait les mêmes que ceux que j'utilisais dans la version précédente.
Les seules différences importantes sont que j'ai ajouté un disque dur supplémentaire sur le PC et que j'ai configuré l'outil de sauvegarde Ubuntu. Ce problème peut-il être lié à un deuxième disque ou à l'outil de sauvegarde?
Réponses:
La valeur par défaut actuelle sur Xenial est 8192 (voir fs / notify / inotify / inotify_user.c dans la source du noyau), vous pouvez le vérifier en imprimant le fichier sur stdout:
Vous pouvez augmenter le nombre, par exemple en le doublant à 16384, en utilisant:
N'oubliez pas que les montres inotify consomment de la mémoire. Je pense qu'il s'agit d'environ 160 octets par montre sur les systèmes 64 bits.
Pour le définir de manière permanente, ajoutez une entrée à /etc/sysctl.conf, par exemple:
..ou éditez manuellement
/etc/sysctl.conf
(vous avez besoin des privilèges root pour le mettre à jour) puis exécutezsudo sysctl -p
la source
Les réponses ci-dessus fonctionnent très bien, mais cela n'explique pas pourquoi je cherchais ici ma tentative de réponse complète -
Pourquoi?
Les programmes qui synchronisent des fichiers tels que dropbox, git, etc. utilisent inotify pour noter les modifications apportées au système de fichiers. La limite peut être vue par -
Pour moi, cela montre 100 000 . Lorsque cette limite n'est pas suffisante pour surveiller tous les fichiers d'un répertoire, cette erreur est générée.
Augmenter le nombre d'observateurs inotify (version courte):
Si vous utilisez Debian, RedHat ou une autre distribution Linux similaire , exécutez ce qui suit dans un terminal:
Si vous exécutez ArchLinux , exécutez la commande suivante (voir ici pourquoi):
Ensuite, collez-le dans votre terminal et appuyez sur Entrée pour l'exécuter.
Détails techniques:
Listen utilise par défaut inotify sous Linux pour surveiller les modifications apportées aux répertoires. Il n’est pas rare de rencontrer une limite système sur le nombre de fichiers que vous pouvez surveiller. Par exemple, la limite d'inotify d'Ubuntu Lucid (64 bits) est définie sur 8192.
Vous pouvez obtenir votre limite actuelle de surveillance de fichiers inotify en exécutant:
Lorsque cette limite n'est pas suffisante pour surveiller tous les fichiers d'un répertoire, vous devez augmenter la limite pour que Listen puisse fonctionner correctement.
Vous pouvez définir une nouvelle limite temporaire avec:
Si vous souhaitez rendre votre limite permanente, utilisez:
Vous devrez peut-être également prêter attention aux valeurs de max_queued_events et max_user_instances si Listen continue à se plaindre.
Source: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
la source
Vous pouvez vérifier la limite existante et sur cette base, vous pouvez la modifier selon vos besoins.
To Check : cat /proc/sys/fs/inotify/max_user_watches To Alter : sudo sysctl fs.inotify.max_user_watches=524288
Cela résoudra l'erreur.
la source