tail: no se puede usar inotify, volviendo al sondeo: demasiados archivos abiertos

tail: no se puede usar inotify, volviendo al sondeo: demasiados archivos abiertos
tail: inotify cannot be used, reverting to polling: Too many open files

Estoy ejecutando servidores Apache y Tomcat en Ubuntu (AWS ec2). Cada vez que intento seguir catalina.outTomcat, aparecen demasiados archivos abiertos. Sin embargo, puedo verlo usando vi.

Después de buscar en Internet, probé el siguiente comando:

lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head

Con resultados a continuación

 17 5650
 17 5178
 13 5972
 10 5976
 10 5974
  9 5977
  9 5975
  9 5973
  8 5978
  4 9

Cuando acabo de ejecutar lsof los identificadores de proceso: 5650 eran bash, 5178 era nuevamente bash y otros eran sshd,top y apache2.

¿Por qué hay una gran cantidad de archivos de apertura bash, top y sshd? ¿Cómo puedo cerrar estos archivos? ¿Acabar con estos procesos servirá de algo? ¿El número disminuirá por sí solo o tendré que hacer algo? En este momento todo funciona como se esperaba, excepto que tail -f me da demasiados archivos abiertos.

Utilizo mucho top y ssh para el servidor. ¿Pero por qué no liberan los archivos? O estoy conectando los puntos equivocados.

Respuesta1

Probablemente te quedaste sin relojes inotify. Por defecto es un 8192 absurdamente bajo.

Verifique su valor actual mediante:

sysctl fs.inotify.max_user_watches

Luego cámbielo a algo más razonable editando /etc/sysctl.confun archivo que incluya y agregando:

fs.inotify.max_user_watches = 524288

(o cualquier valor) y luego ejecutarlo sysctl -ppara que surta efecto.

Respuesta2

Puedes intentar aumentar fs.inotify.max_user_instances:

sysctl fs.inotify.max_user_instances=512

Respuesta3

Tal vez sea un error del kernel de Ubuntu, verifiqueestedesde el rastreador de errores de la plataforma de lanzamiento.

¡Y si es necesario, actualice su kernel!

información relacionada