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!
lsof | wc -l
realmente mostrando um número negativo?