De repente, estou com um problema; todos os meus aplicativos e o servidor estavam funcionando bem e, de repente, vejo o número de arquivos abertos disparando.
Estou verificando com este comando:
cat /proc/sys/fs/file-nr
Quando verifico isso, mostra 44544 0 128000
44544 é o número de arquivos abertos.
Mas quando eu verifico com este comando - lsof | wc -l
mostra - 28384.
Então, qual está correto?
Meu limite máximo de arquivos abertos é 65535
ulimit -a
open files (-n) 65535
Quero conhecer os 5 principais processos que estão usando mais arquivos abertos. Posso obter isso, lsof
mas a contagem mostrada aqui é muito diferente do outro comando que mencionei acima.
Posso obter os detalhes dos processos contados por este comando cat /proc/sys/fs/file-nr
?
De acordo com o link abaixo mencionado, ele diz que não podemos: Como exibir descritores de arquivos abertos, mas não usando o comando lsof
Existe uma solução para mim? Preciso descobrir qual processo começou a usar mais arquivos abertos de repente.
ATUALIZAÇÃO Desculpe pessoal pelo problema. Eu encontrei o erro que eu estava cometendo, eu não estava verificando lsof | wc -l a partir do root. essa é a razão pela qual eu estava vendo uma enorme diferença.
ainda existe uma diferença entre a saída do arquivo -nr e lsof | wc -l (da raiz). lsof count é mais que file -nr count. o motivo disso é que o arquivo -nr ignora alguns dos diretórios (que são considerados arquivos pelo lsof). Encontrei esse motivo em uma pequena pesquisa no próprio google. em todo o caso! Obrigado rapazes por toda a ajuda!
fonte
lsof | wc -l
realmente mostrando um número negativo?Respostas:
Parece haver duas perguntas em jogo aqui. Primeiro, a documentação completa das estruturas file-nr e file-max pode ser encontrada em
https://www.kernel.org/doc/Documentation/sysctl/fs.txt
Isso define os campos nesse arquivo como:
Espero que esteja claro o suficiente. A segunda pergunta foi respondida no segmento mencionado acima ( /server/485262/number-of-file-descriptors-different-between-proc-sys-fs-file-nr-and-proc- pi ) e parece evoluir para
A dificuldade de obter métricas precisas para isso é significativa, pois o número de DFs em uso em qualquer ponto pode flutuar muito rapidamente em um sistema.
O segmento a seguir sugere um esquema de filtragem para a abordagem 'lsof':
/server/396872/why-or-how-does-the-number-of-open-file-descriptors-in-use-by-root-exceed-ulim
fonte
ulimit
para mim diz que posso ter até 1024 arquivos abertos, selsof | wc -l
diz que já tenho 1545?lsof
eulimit
para a resposta à sua pergunta.