Estou executando um site intenso de tráfego com bastante conteúdo dinâmico, principalmente gerado pelo usuário.
O servidor é dedicado e possui um total de 4 processadores Intel Xeon CPU X3210 a 2.13GHz. Eu preciso conhecer os valores ideais para as diretivas do apache ServerLimit e MaxClients, considerando que o servidor possui 4 GB de RAM e o banco de dados MySQL é executado em um servidor separado. O painel é o DirectAdmin with CentOS.
Abaixo estão minhas diretrizes atuais, mas durante os horários de pico com mais de 5 mil usuários, um atraso importante é percebido - e não é culpa do MySQL, porque as páginas parecem ser geradas rapidamente (eu implementei um contador de tempo de geração de páginas), mas há um longo atraso na conexão até que a página comece a responder e seja enviada ao navegador.
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
Devo mencionar que, ao monitorar o servidor usando o comando top, o uso da CPU nunca ultrapassa 20% a 30% no horário de pico. O servidor MySQL também tem um uso de 30 a 50% na época e estou trabalhando constantemente na correção de consultas lentas, mas esse é um problema diferente. Sei que não é um gargalo de banco de dados porque as páginas estáticas também demoram muito para serem carregadas nos horários de pico.
Quaisquer dicas para otimizar esses valores serão muito apreciadas, obrigado.