tail: inotify não pode ser usado, revertendo para polling: muitos arquivos abertos

3
tail: inotify cannot be used, reverting to polling: Too many open files

Estou executando servidores apache e tomcat no Ubuntu (AWS ec2). Sempre que eu tento seguir o catalina.out do tomcat eu recebo muitos arquivos abertos. No entanto, eu posso 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 eu acabei de executar lsof os ids do processo: 5650 eram bash, 5178 era novamente bash e outros eram sshd, top e apache2.

Por que existem arquivos de abertura bash, top, sshd em grande número? Como posso fechar esses arquivos? Matar esses processos fará algum bem? O número diminuirá sozinho ou eu tenho que fazer alguma coisa? Agora tudo está funcionando como esperado, exceto que tail -f me dá muitos arquivos abertos.

Eu uso muito o top e o ssh para o servidor. Mas por que eles não liberam os arquivos? OU estou conectando os pontos errados.

    
por user23577 24.05.2013 / 22:13

3 respostas

6

Provavelmente você ficou sem relógios inotify. Por padrão, é um 8192 absurdamente baixo.

Verifique seu valor atual por:

sysctl fs.inotify.max_user_watches

Altere-o para algo mais razoável editando /etc/sysctl.conf ou um arquivo incluído e incluindo:

fs.inotify.max_user_watches = 524288

(ou qualquer valor) e, em seguida, executando sysctl -p para que ele tenha efeito.

    
por 25.05.2013 / 02:06
0

Você pode tentar aumentar fs.inotify.max_user_instances:

sysctl fs.inotify.max_user_instances=512
    
por 19.11.2014 / 13:10
0

Talvez seja um bug do kernel do Ubuntu, verifique este a partir do bugtracker da barra de lançamento.

E, se necessário, atualize seu kernel!

    
por 12.02.2015 / 16:15