linux - puddletag - ¿Cómo puedo saber qué relojes inotify han sido registrados?
mp3tag ubuntu (5)
El número máximo predeterminado de relojes
inotify
es 8192; se puede aumentar escribiendo a / proc / sys / fs / inotify / max_user_watches .
Puede usarsysctl fs.inotify.max_user_watches
para verificar el valor actual.Use
tail -f
para verificar si su sistema operativo excede el límite máximo de vigilancia deinotify
.
La implementación interna del comandotail -f
utiliza el mecanismo deinotify
para monitorear los cambios en los archivos.
Si te has quedado sin tus relojesinotify
, lo más probable es que obtengas este error:cola: no se puede utilizar inotify, volviendo a sondear: hay demasiados archivos abiertos
Para averiguar qué relojes
inotify
se han registrado, puede consultar this y this . Lo intenté, pero no conseguí el resultado ideal. :-(
Referencia:
https://askubuntu.com/questions/154255/how-can-i-tell-if-i-am-out-of-inotify-watches
this
this
Tengo mi límite de vigilancia inotify establecido en 1024 (creo que el valor predeterminado es 128?). A pesar de eso, yeoman, Guard y Dropbox fallan constantemente y dime que suba mi límite de inotificación. Antes de hacerlo, me gustaría saber qué consume todos mis relojes (tengo muy pocos archivos en mi Dropbox).
¿Hay alguna área de / proc o / sys, o alguna herramienta que pueda ejecutar, para averiguar qué relojes están registrados actualmente?
Dado que esto es alto en los resultados de Google, copio y copio parte de mi respuesta de una pregunta similar en el Unix / Linux StackExchange:
Me encontré con este problema, y ninguna de estas respuestas le da la respuesta de "¿cuántos relojes utiliza cada proceso actualmente?" Todas las frases de una sola línea le dan la cantidad de instancias abiertas, lo que es solo una parte de la historia, y el rastreo solo es útil para ver cómo se abren nuevos relojes.
Esto le proporcionará un archivo con una lista de instancias de inotify
abiertas y la cantidad de relojes que tienen, junto con los pids y binarios que los generaron, ordenados en orden descendente por conteo de relojes:
sudo lsof | awk ''/anon_inode/ { gsub(/[urw]$/,"",$4); print "/proc/"$2"/fdinfo/"$4; }'' | 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 estás interesado en lo que hace esa gran bola de desorden y por qué, expliqué en profundidad la respuesta original .
El siguiente comando de terminal funcionó perfectamente para mí en mi máquina 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
Mi problema fue que tenía una buena mayoría de mi disco duro cargado como una carpeta en Sublime Text . Entre /opt/sublime_text/plugin_host 8992
y /opt/sublime_text/sublime_text
, Sublime tuvo 18 instancias de inotify, mientras que el resto de mis programas estaban entre 1-3.
Desde que estaba haciendo el desarrollo de la aplicación móvil de Ionic, reduje el número de instancias en 5 agregando la carpeta grande "node_modules" de Node.js a la lista de ignorados en la configuración de Sublime.
"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]
Fuente: https://github.com/SublimeTextIssues/Core/issues/1195
Yo creo que
sudo ls -l /proc/*/fd/* | grep notify
podría ser de utilidad. Obtendrá una lista de los pids que tienen un inotify fd registrado.
¡No sé cómo obtener más información que esta! HTH
inotificar opciones del sistema de archivos
sysctl fs.inotify
archivos abiertos
lsof | grep inotify | wc -l
Incrementa los valores como este.
-
sysctl -n -w fs.inotify.max_user_watches=16384
-
sysctl -n -w fs.inotify.max_user_instances=512