Algumas coisas que você pode fazer ou verificar:
- Tivemos um problema semelhante em que o Apache 1.3 não fechou corretamente as conexões, o que as deixou permanecendo para sempre e, eventualmente, preenchia todos os slots do cliente. Para contornar isso, apenas reiniciamos o Apache uma vez por dia em um script cron. O seu problema parece diferente, já que você menciona que, em algum momento, ele será limpo para que a reinicialização diária não ajude em nada.
- Eu suponho que você nunca está alcançando o "MaxClients" em conexões simultâneas?
- Qual é a sua configuração "KeepAliveTimeout"? O padrão é 15 segundos, o que é grande para a maioria dos sites com 1 ou 2 segundos, normalmente funcionando melhor (especialmente desde que seu "Tempo limite" esteja configurado para 2 de qualquer maneira).
- Marque "netstat -an" para sinais óbvios de DOS de um cliente. Descobri que, muitas vezes, quando há problemas não óbvios no site, isso ocorre devido a um cliente martelar o site continuamente com 20 solicitações por segundo. Verifique se você não está limitando a largura de banda do servidor (o que é fácil se você tiver apenas uma conexão de 10 Mbps). Uso os gráficos de monitoramento de largura de banda on-line do meu provedor, mas também deve haver maneiras de linha de comando para fazer isso (o ifconfig pode permitir). Existem várias soluções em nível de servidor ou Apache para evitar automaticamente ataques do DOS (sejam eles inocentes ou não).
- Marque "top" durante o problema e observe o uso da CPU, do IO e da memória. Certifique-se de que você não está trocando memória (o que você não deveria se você estivesse com 10% de uso de memória).
- Falando de memória .... 10% de uso de memória até mesmo de um servidor de 24GB de RAM parece baixo. Eu tenho vários servidores com 1-4GB de RAM e eles estão todos no uso de 75-90% de memória (muito do que está no cache do sistema operacional no entanto). Suponho que isso depende da configuração do Apache e do uso do servidor.
- Verifique se não há outros dead-locks na sua camada de aplicativo que estejam causando o problema (como um banco de dados). Por exemplo, verifique sua página "status de servidor" do Apache e, se ela for carregada rapidamente, mas a página do site regular for carregada lentamente, o problema provavelmente não será o servidor Apache.
- Verifique os registros em "/ var / log", particularmente os logs de erros do Apache e o log de "mensagens" para mensagens relevantes. Se você não tiver esses ou outros logs de aplicativos ativados, ative-os pelo menos temporariamente.
- Verifique os limites do sistema de coisas como o número de arquivos abertos permitidos por vez (ulimit -n). As configurações padrão de muitos servidores / SOs não são necessariamente configuradas para um servidor de alto volume.
- Se tudo o mais falhar, desafie suas suposições sobre o problema e verifique novamente os itens que "não podem" falhar ou que você já verificou.