Resposta curta (para um limite de 500000)
- Edite o /etc/security/limits.conf e adicione-o ao final do arquivo:
* hard nofile 500000 * soft nofile 500000 root hard nofile 500000 root soft nofile 500000
- Edite o arquivo / etc / sysconfig / httpd e adicione no final, adicione:
ulimit -n 500000
-
Reinicialize (não sei se é absolutamente necessário)
-
Bingo!
Resposta longa
Acontece que, de acordo com Faça ulimits funcionar com start-stop-daemon e discussão da lista de discussão da Red Hat ,
limits.conf(5) is the configuration for pam_limits(8), which is activated by the PAM stack according to the configuration in /etc/pam.d. However, start-stop-daemon(8) as launched from an init.d script doesn't pass through the PAM stack, so those kinds of settings are never applied.
Ou em termos mais simples,
/etc/security/limits.conf applies to logins, and user "apache" isn't logging in.
A solução proposta no primeiro link é editar o script init.d e adicionar o ulimit -n ao final do script.
No entanto, como pode ser observado no segundo link, se você editar o script /etc/init.d/httpd, uma atualização do sistema poderá sobrescrever o arquivo e as alterações desaparecerão.
É por isso que eles sugeriram aqui , aqui e aqui para editar o arquivo / etc / sysconfig / httpd e inserir o comando lá.
Foi o que eu fiz, e agora eu tenho um lindo gato / proc / pid / limits exatamente como eu queria:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 10485760 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 500000 500000 processes
Max open files 500000 500000 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 95124 95124 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
e o programa não trava mais.
A propósito, o sistema é um servidor RHEL 6.6.