Você provavelmente tem muitos e muitos processos do apache em execução. Emita um ps ax | grep apache2 | wc -l
para ver quanto.
Se o parâmetro KeepAliveTimeout
for muito grande (como o padrão), alguém pode se conectar a você, deixar a conexão demorar e consumir todos os seus recursos.
Eu costumo usar KeepAliveTimeout 5
, então quando o nothign volta em 5 segundos, o Apache pode desligar a conexão.
Verifique também o MaxConnectionsPerChild
. Se eles são ilimitados, um vazamento de memória vai consumir toda a sua memória. Use algo legal, como 10000 ou 50000.
Dê uma olhada nos módulos carregados também. Você pode ter alguns módulos não utilizados e eles ficam com pouca memória em cada instância do processo. Embora a quantidade seja pequena, resume muito rapidamente.
Por fim, dê uma olhada nos seus registros. Veja se há algo estranho nos logs. Você pode descobrir que seu servidor está sofrendo um ataque, ou alguém instalou uma biblioteca com falha ou coisas assim.