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?

27
demandé sur frio 2012-12-07 11:38:51

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
20
répondu David Canós 2014-07-28 11:31:17
  1. 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 utiliser sysctl fs.inotify.max_user_watches pour vérifier la valeur actuelle.

  2. utilisez tail -f pour vérifier si votre système d'exploitation dépasse la limite maximale de quart inotify .

    La mise en œuvre interne La commande tail -f utilise le mécanisme inotify pour surveiller les changements de fichiers.

    Si vous êtes à court de votre inotify 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

  3. 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

6
répondu zeekvfu 2017-04-13 12:36:27

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

3
répondu Guido 2013-12-03 15:39:42

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 .

2
répondu cincodenada 2018-02-22 23:00:59

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

1
répondu brenthompson2 2017-09-08 07:48:25