Yo uso una aplicación que consume relojes inotify. Ya he establecido
fs.inotify.max_user_watches=32768
en /etc/sysctl.conf
pero anoche la parada de la aplicación de indexación a no ser que me encontré de forma manual, lo que me lleva a sospechar que estoy fuera de los relojes.
Como no sé cuál es la compensación cuando aumento este número (¿consume más RAM?), No sé si debería aumentar este número, por lo que me gustaría saber si hay alguna forma de puede saber si está usando todos estos relojes y cuáles serían las compensaciones para aumentarlo.
Respuestas:
¿Cómo sabes si no tienes relojes? la cola lo dirá!
tail
con la-f
opción (seguir) en cualquier archivo antiguo, por ejemplotail -f /var/log/dmesg
:Para los curiosos: ¿Por qué la cola es un "indicador"?
strace tail -f ...
lugar, y cuando tenga éxito, termina con:¿Puedes aumentar los relojes? ¿Por cuanto? ¿Alguna compensación?
Respuesta corta: Claro, sin sudar. Vaya directamente a medio millón (524288) si lo desea ... la memoria adicional utilizada debería ser insignificante en un sistema moderno con 4GB + de memoria.
Entonces, suponiendo que establezca el máximo en 524288, y todos se hayan utilizado (improbable), estaría utilizando aprox. 256 MB / 512 MB de memoria de kernel de 32 bits / 64 bits
¿Cuál es el valor máximo? Supongo que ninguno, en teoría, siempre que tenga suficiente RAM. En la práctica, 524288 ha sido oficialmente recomendado por las aplicaciones , y la gente lo ha estado configurando en 2 millones , con el uso de memoria que lo acompaña, por supuesto.
fuente
sudo lsof | grep -i inotify | wc -l
No sé si debería aumentar este número
La manera fácil de verificar si alcanzó su
max_user_watches
valor es, con su usuario, usarloinotifywatch
desde el paqueteinotify-tools
, y verificar si aún puede recopilar información de un archivo.Por ejemplo
inotifywatch -v /home/bruno/.profile
para mí devuelve:Por lo tanto,
inotify
no tiene problemas para crear un reloj nuevo, no hay problemas aquí.Si ha alcanzado su límite máximo en relojes inotify, le devolverá algo como
Si ve algo como esto, ha alcanzado el límite y deberá aumentar el límite permitido de relojes.
¿Consume más RAM?
Si lo hace. Pero según este antiguo artículo, la cantidad que consume es mínima en comparación con otros aspectos de un escritorio en ejecución.
Por supuesto, estoy asumiendo que las cosas no cambiaron mucho desde que se escribió el artículo, pero mirando los números no me preocuparía y aumentar el límite no aumentará mucho el consumo de RAM.
Publicaciones relacionadas sobre
inotify
Error de Dropbox: 'echo 100000 | sudo tee / proc / sys / fs / inotify / max_user_watches '
kernel-inotify-watch-limit-alcance
fuente