O servidor dedicado para 80 req / s - MaxRequestWorkers é a causa?

2

Eu tenho um servidor Ubuntu físico ( veja algumas das especificações aqui ), com o Apache 2.4.7, PHP 5.5.9, mysql 14.14, mysqlite e framework Yii 1.16 instalado. O servidor funciona de forma surpreendente no início, mas de repente, dado o estresse suficiente, ele começa a expirar (mais de 80 solicitações por segundo). Em nenhum momento nenhum dos recursos do sistema está próximo de ser limitado. CPU é de apenas 25%.

No log de erros do Apache, encontrei o seguinte:

server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

Devo apenas aumentar esse número, ou estou apenas corrigindo um efeito colateral do problema aqui?

Além disso, não entendo completamente a documentação. Na seção sobre MaxRequestWorkers , ele também vincula com a configuração ServerLimit , mas não tenho certeza de como os dois devem estar definidos, para trabalhar juntos corretamente.

Outros detalhes técnicos que podem ser úteis:

  • Eu desativei os arquivos .htaccess e configurei o mod_rewrite por meio da configuração do apache.
  • O Apache também fornece o seguinte aviso, que é incerto se é importante ou não:

    apache2: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 127.0.1.1. Definir a diretiva 'ServerName' globalmente para suprimir esta mensagem

  • É o único site instalado no servidor.

  • Os gráficos de desempenho feitos no momento em que foram carregados foram os mais altos:

    
por Johny Skovdal 11.03.2015 / 08:59

2 respostas

0

A menos que você possa melhorar o desempenho (e seu código pode ser ineficiente), você terá que lançar hardware nele.

At no time is any of the system resources anywhere near being capped. CPU is only up to 25%.

Normalmente, com um banco de dados transacional, a CPU é o menor problema. Verifique sua carga de IO - pode ser que você não tenha capacidade de IO suficiente para o banco de dados manipular. A CPU é apenas um dos três recursos críticos, sendo os outros dois IO e memória.

    
por 11.03.2015 / 12:13
0

Você atingiu o servidor MaxRequestWorkers limit. Isso significa que quando você tem muitos pedidos, a maioria deles está aguardando para ser atendida e, durante essa espera, o PHP expira.

Como você ainda tem muitos recursos, você pode aumentar com segurança MaxRequestWorkers . Verifique também as configurações de tempo limite do PHP.

    
por 11.03.2015 / 13:11