Comment puis-je savoir quelles montres inotify ont été enregistrées?
j'ai mon inotify regarder limite fixée à 1024 (je pense que la valeur par défaut est de 128?). Malgré cela, le Gardien et le Dropbox échouent constamment, et me disent d'augmenter mon inotify limite. Avant de le faire, je voudrais savoir ce qui consomme toutes mes montres (j'ai très peu de fichiers dans ma Dropbox).
y a-t-il une zone de /proc ou /sys, ou un outil que je peux exécuter, pour savoir quelles montres sont actuellement enregistrés?
5 réponses
iNotify options du système de fichiers
sysctl fs.inotify
dossiers ouverts
lsof | grep inotify | wc -l
augmenter les valeurs comme ceci
-
sysctl -n -w fs.inotify.max_user_watches=16384
-
sysctl -n -w fs.inotify.max_user_instances=512
-
le nombre maximal par défaut de montres
inotify
est de 8192; il peut être augmenté en écrivant /proc/sys/fs/inotify/max_user_watches .
Vous pouvez utilisersysctl fs.inotify.max_user_watches
pour vérifier la valeur actuelle. -
utilisez
tail -f
pour vérifier si votre système d'exploitation dépasse la limite maximale de quartinotify
.
La mise en œuvre interne La commandetail -f
utilise le mécanismeinotify
pour surveiller les changements de fichiers.
Si vous êtes à court de votreinotify
Montres, vous aurez plus de chances d'obtenir cette erreur:queue: inotify ne peut pas être utilisé, le retour à l'interrogation: Trop de fichiers ouverts
-
pour savoir quelles montres
inotify
ont été enregistrées, vous pouvez vous référer à ce , et ce . J'ai essayé, mais je n'ai pas eu le résultat idéal. :- (
référence:
https://askubuntu.com/questions/154255/how-can-i-tell-if-i-am-out-of-inotify-watches
https://unix.stackexchange.com/questions/15509/whos-consuming-my-inotify-resources
https://bbs.archlinux.org/viewtopic.php?pid=1340049
je pense
sudo ls -l /proc/*/fd/* | grep notify
pourrait être utile. Vous obtiendrez une liste des pid qui ont un inotify fd enregistré.
Je ne sais pas comment obtenir plus d'information que cela! HTH
comme C'est élevé dans les résultats de Google, je suis copier-coller une partie de ma réponse d'une question similaire sur L'Unix/Linux StackExchange:
j'ai rencontré ce problème, et aucune de ces réponses ne vous donne la réponse de "combien montres chaque processus utilise-t-il actuellement?"Le one-liners tous vous donner combien de instances sont ouverts, ce qui n'est qu'une partie de l'histoire, et la trace des choses est seulement utile pour voir les nouvelles montres en cours d'ouverture.
vous obtiendrez ainsi un fichier avec une liste d'instances ouvertes inotify
et le nombre de montres elles ont, avec les PID et les binaires qui les ont engendrées, triées par ordre décroissant Par Nombre de montres:
sudo lsof | awk '/anon_inode/ { gsub(/[urw]$/,"",); print "/proc/""/fdinfo/"; }' | while read fdi; do count=$(sudo grep -c inotify $fdi); exe=$(sudo readlink $(dirname $(dirname $fdi))/exe); echo -e $count"\t"$fdi"\t"$exe; done | sort -nr > watches
si vous êtes coupé dans ce que cette grosse boule de mess fait et pourquoi, j'ai expliqué en profondeur sur la réponse originale .
la commande de terminal suivante a fonctionné parfaitement pour moi sur ma machine Ubuntu 16.04:
for foo in /proc/*/fd/*; do readlink -f $foo; done |grep inotify |cut -d/ -f3 |xargs -I '{}' -- ps --no-headers -o '%p %U %a' -p '{}' |uniq -c |sort -n
mon problème était que j'avais une bonne majorité de mon disque dur chargé comme un dossier dans texte Sublime . Entre /opt/sublime_text/plugin_host 8992
et /opt/sublime_text/sublime_text
, Sublime a eu 18 cas d'inotification tandis que le reste de mes programmes étaient tous entre 1-3.
depuis que je faisais le développement ionique D'application Mobile j'ai réduit le nombre d'instances par 5 en ajoutant le gros noeud.dossier js "node_modules" à la liste des ignorants dans les paramètres sublimes.
"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]
Source: https://github.com/SublimeTextIssues/Core/issues/1195