Eu tenho uma instância do Ubuntu EC2 (t1.micro, 600mb de RAM) executando o mod_wsgi no Apache, para servir um aplicativo Django. Isso tudo está por trás de um balanceador de carga.
O problema que eu continuo encontrando é que eu só consigo ter alguns dias de atividade antes que meu site desça e eu comece a obter 503 status. Meu registro é de cerca de 4 semanas sem tempo de inatividade. Reiniciar o apache não ajuda, eu geralmente tenho que parar completamente e reiniciar a instância do EC2.
Eu tentei usar o Dowser para diagnosticar vazamentos de memória, mas nada se destaca. Eu tentei tweaking as configurações mpm_prefork. Não estou usando nenhum módulo de extensão C, nenhuma chamada de API externa tem tempo limite definido e só tenho duas tarefas agendadas que são executadas uma vez por dia. Meus logs de acesso não mostram nada fora do comum que indique DDOSing.
Estou completamente perplexo com o que está causando a queda constante do servidor.
Aqui está a saída do status do apachectl durante um episódio de inatividade:
Eaquiestáasaídadohtopaomesmotempo:
Estas são as configurações do meu prefork:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 40
MaxConnectionsPerChild 0
</IfModule>
Devo apenas atualizar para uma instância maior do EC2? Ou atualizar o mod_wsgi (já que estou em uma versão mais antiga)? Eu tentei de tudo a partir do ângulo do Django, então estou começando a pensar que só tenho o mod_wsgi configurado incorretamente ...