“falhou ao abrir fluxo: muitos arquivos abertos” e coleta de lixo

1

Enquanto escrevo alguns testes de unidade, eu atinjo o limite superior para muitos arquivos abertos (Debian VM) - "falha ao abrir fluxo: muitos arquivos abertos"

Além de reiniciar, existe alguma maneira de limpar este bloco? (ou seja, esses arquivos abertos, mas não acessíveis, serão limpos com o tempo?)

Fyi - Eu gostaria de saber porque quero configurar um servidor de integração contínua para testes de unidade, e se uma reinicialização é a única maneira de resolver esse problema, preciso encontrar uma maneira diferente de abordar determinados testes de unidade.

    
por Mathew 25.09.2012 / 07:08

2 respostas

3

Não, a menos que você os feche ou o processo que os possui morra.

É possível que o usuário que você está usando para executar os testes seja restrito por ulimits quanto ao número de arquivos que eles podem abrir.

    
por 25.09.2012 / 07:25
1

Você tentou aumentar o máximo de arquivos abertos para o usuário no qual realizou os testes?

Para ver quantos arquivos abertos o usuário possui (soft e hard):

# ulimit -Hn
# ulimit -Sn

Também é normal que às vezes você precise aumentar os arquivos abertos máximos globais para o sistema. Então tente com isso e descubra se isso ajuda.

# sysctl -w fs.file-max=100000

Se você quiser alterar permanentemente os arquivos max abertos, você precisa editar o arquivo /etc/sysctl.conf e adicionar / alterar a seguinte linha

fs.file-max = 100000
    
por 25.09.2012 / 07:29