Executei o c1000k na minha máquina CentOS 7.2 e ele me disse
connections: 921
error: Too many open files
Por causa disso, mudei meu /etc/sysctl.conf
para conter isso:
fs.file-max = 2097152
Mas mesmo depois de uma reinicialização, ainda corro para o mesmo limite. ulimit -Sn
e ulimit -Hn
imprimir 1024
respectivamente 4096
.
O ulimit do descritor 1024 efetivo (suave) é um total para o processo, incluindo descritores que são usados para fins de não conexão. Aparentemente, esse processo está usando cerca de 100 descritores para outras coisas, deixando apenas 921 para conexões.
lsof -p <process-id>
mostrará como os descritores estão sendo usados.Para permitir mais descritores, aumente o limite flexível antes de iniciar o processo. Se você estiver executando a partir do bash, seria:
para aumentá-lo para 2048 para futuros comandos. Para aumentar o soft limit para qualquer que seja o máximo permitido (o hard limit, neste caso 4096), você pode fazer:
Se você deseja que o limite elevado seja aplicado apenas a um comando e não a outros comandos futuros, aumente o limite em um subshell:
Se você quiser ir além de seu limite rígido atual de 4096 descritores, poderá executar seu teste a partir de uma conta de usuário que tenha privilégios suficientes para aumentar o limite rígido ou alterar os valores ulimit rígidos e flexíveis iniciais definidos no momento do login para seu conta de usuário modificando
/etc/security/limits.conf
ou (melhor) adicionando arquivos em/etc/security.d
. Veja os comentários nolimits.conf
arquivo ou executeman limits.conf
para mais detalhes.