
tail: inotify cannot be used, reverting to polling: Too many open files
Estou executando servidores Apache e Tomcat no Ubuntu (AWS ec2). Sempre que tento seguir o catalina.out
Tomcat, recebo muitos arquivos abertos. No entanto, consigo visualizá-lo usando o vi.
Depois de pesquisar na internet, tentei o seguinte comando:
lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head
Com resultados abaixo
17 5650
17 5178
13 5972
10 5976
10 5974
9 5977
9 5975
9 5973
8 5978
4 9
Quando acabei de executar lsof os IDs do processo: 5650 eram bash, 5178 eram novamente bash e outros eram sshd, top e apache2.
Por que há um grande número de arquivos de abertura bash, top e sshd? Como posso fechar esses arquivos? Matar esses processos fará algum bem? O número diminuirá sozinho ou terei que fazer alguma coisa? No momento, tudo está funcionando conforme o esperado, exceto que tail -f me fornece muitos arquivos abertos.
Eu uso muito top e ssh para servidor. Mas por que eles não liberam os arquivos? OU estou conectando os pontos errados.
Responder1
Provavelmente você ficou sem relógios inotify. Por padrão, é um 8192 absurdamente baixo.
Verifique seu valor atual:
sysctl fs.inotify.max_user_watches
Em seguida, altere-o para algo mais razoável editando /etc/sysctl.conf
o arquivo que ele inclui e adicionando:
fs.inotify.max_user_watches = 524288
(ou qualquer valor) e depois executando sysctl -p
para que tenha efeito.
Responder2
Você pode tentar aumentar fs.inotify.max_user_instances:
sysctl fs.inotify.max_user_instances=512
Responder3
Talvez seja um bug do kernel do Ubuntu, verifiqueessedo bugtracker da barra de lançamento.
E se necessário atualize seu kernel!