Eu tenho alguns sites Wordpress rodando em Apache 2.4.7 / Ubuntu 14.04.2 LTS. É uma máquina virtual em execução no Microsoft Azure. Os sites estão usando um servidor MySQL também rodando na mesma máquina. De tempos em tempos, os sites não respondem e o Apache precisa ser reiniciado. Investigando o log de erros ( /var/log/apache2/error.log
) revela o seguinte erro:
[mpm_prefork:error] [pid 5761] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
Aqui está o conteúdo do arquivo de configuração do Apache ( /etc/apache2/mods-enabled/mpm_prefork.conf
)
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 256
MaxConnectionsPerChild 1000
</IfModule>
Eu aumentei o MaxRequestWorkers
para o número máximo permitido (256), mas ainda continua acontecendo. Eu tentei mudar a configuração de MaxConnectionsPerChild
, mas não parece ter qualquer efeito também. Às vezes, os sites funcionam bem por semanas, às vezes o Apache diminui em um dia. Ocasionalmente, o processo do MySQL também pára de funcionar e precisa ser reiniciado.
O que mais devo verificar?
Ocasionalmente, recebemos uma carga um pouco mais pesada de solicitações para os websites. Isso poderia causar o problema? Mais importante, porém, isso significa imediatamente que precisamos ter memória disponível ou o servidor da web falhará? Ou seja, há alguma coisa a fazer para garantir a segurança contra falhas, não importa quantas solicitações o servidor web receba?