Eu uso um aplicativo que consome inotify relógios. Eu já coloquei
fs.inotify.max_user_watches=32768
em /etc/sysctl.conf
mas a noite passada o aplicativo parou de indexação, a menos que eu corri-lo manualmente, o que me leva a suspeitar que eu estou fora de relógios.
Como não sei qual é o problema quando aumento esse número (consome mais RAM?), Não sei se devo aumentar esse número, então gostaria de saber se há uma maneira de pode dizer se está usando todos esses relógios e quais podem ser as trocas para aumentá-lo.
Respostas:
Como você sabe se você está sem relógios? cauda dirá!
tail
com a-f
opção (seguir) em qualquer arquivo antigo, por exemplotail -f /var/log/dmesg
:Para os curiosos: Por que a cauda é um "sinal de alerta"?
strace tail -f ...
vez disso e, quando for bem-sucedido, termina com:Você pode aumentar os relógios? Por quanto? Alguma troca?
Resposta curta: Claro, sem suor. Vá direto para meio milhão (524288) se desejar ... a memória adicional usada deve ser insignificante em um sistema moderno com 4 GB + de memória.
Portanto, supondo que você defina o máximo em 524288 e que todos foram usados (improvável), você usaria aprox. 256 MB / 512 MB de memória do kernel de 32 bits / 64 bits
Qual é o valor máximo? Eu acho que nenhum, em teoria, desde que você tenha RAM suficiente. Na prática, o 524288 foi oficialmente recomendado pelos aplicativos , e as pessoas o definiram para 2 milhões , com o uso de memória que acompanha, é claro.
fonte
sudo lsof | grep -i inotify | wc -l
Não sei se devo aumentar esse número
A maneira mais fácil de verificar se você atingiu seu
max_user_watches
valor é, com seu usuário, usarinotifywatch
o pacoteinotify-tools
e verificar se você ainda pode coletar informações de um arquivo.Por exemplo
inotifywatch -v /home/bruno/.profile
para mim retorna:Portanto
inotify
, não há problemas ao criar um novo relógio, não há problemas aqui.Se você atingiu seu limite máximo nos relógios inotify, ele retornará algo como
Se você vir algo assim, atingiu o limite e precisará aumentar o limite permitido de relógios.
Consome mais RAM?
Sim. Mas, de acordo com este artigo antigo, a quantidade consumida é mínima em comparação com outros aspectos de uma área de trabalho em execução.
Obviamente, estou assumindo que as coisas não mudaram muito desde que o artigo foi escrito, mas olhando para os números, não me preocuparia e aumentar o limite não aumentará muito o consumo de RAM.
Publicações relacionadas sobre
inotify
Erro do Dropbox - 'eco 100000 | sudo tee / proc / sys / fs / inotify / max_user_watches '
kernel-inotify-watch-limit-alcançado
fonte