Muitos arquivos abrem problema (no CentOS)

1

Recentemente me deparei com esse problema em uma de nossas máquinas de produção. O problema real do PHP ficou assim:

fopen (dberror_20110308.txt): falha ao abrir fluxo: muitos arquivos abertos

Estou executando o LAMP stack junto com o memcache nesta máquina. Eu também executo alguns aplicativos Java nesta máquina. Embora eu tenha aumentado o limite do número de arquivos que podem ser abertos para 10000 (de 1024), eu realmente gostaria de saber se há uma maneira fácil de rastrear isso (número de arquivos abertos a qualquer momento) como uma métrica. Eu sei lsof é um comando que irá listar os descritores de arquivos abertos por processos. Imaginando se existe alguma outra maneira melhor (em termos de relatório) de rastrear isso usando, digamos, nagios.

    
por Ram 11.03.2011 / 07:50

3 respostas

6

Você pode dar uma olhada em / proc / sys / fs / file-nr

cat /proc/sys/fs/file-nr
3391    969     52427
|        |       |
|        |       |
|        |       maximum open file descriptors
|        total free allocated file descriptors
total allocated file descriptors

Total de descritores de arquivos alocados significa o número de descritores de arquivos alocados desde a inicialização. Isso pode ser considerado como um limite máximo de arquivos máximos abertos ao mesmo tempo. À medida que estes se liberam, eles vão para a segunda colmn, então o número de arquivos abertos a qualquer momento será a coluna 1 - coluna 2.

    
por 11.03.2011 / 08:05
3

/proc/sys/fs/file-nr mostra o número de descritores de arquivos abertos em todo o sistema e o máximo em todo o sistema. Para processos individuais, você pode ver /proc/$pid/fd/* .

    
por 11.03.2011 / 08:06
0

/ proc / sys / fs / file-nr fornece o número total de arquivos abertos no sistema (e há um limite para isso), mas o problema atual é o número de arquivos abertos por processo

Cada arquivo aberto é representado por um arquivo em / proc / pid / fd

Então você só precisa identificar os pids para os processos que estão abrindo muitos arquivos (parece que o seu banco de dados é o problema) e contar os arquivos correspondentes.

Mas eu acho um pouco estranho que parece ser um DB que tem muitos arquivos abertos. E é incapaz de abrir um arquivo txt?

    
por 11.03.2011 / 11:58

Tags