Por que meu tempo de enfileiramento de pedidos é tão alto?

2

Estou executando um servidor de aplicativos Rails. Minha configuração é:

  • Apache 2, usando mod_ssl para os certificados de cliente https e ssl
  • Passageiro de Phusion 5
  • Rails 4
  • Ruby 2.1

Eu uso o NewRelic para monitorar o aplicativo em execução. Recentemente, habilitei o monitoramento do atraso de enfileiramento de solicitações, principalmente por curiosidade. Fiquei surpreso ao descobrir que o atraso na fila de solicitações costuma ser maior ou maior que o código real de ruby e o tempo de execução do banco de dados. ~ 200 ms parece alto, certo?

Amaioriadasinformaçõeson-lineindicaqueissoacontecequandoafiladesolicitaçõesestáaguardandoadisponibilidadedeumfuncionário,masessenãoéocaso.Comovistoabaixo,malestamosusandonossasinstânciasaprovadas.Duranteospicos,raramenteultrapassamosautilizaçãode30%.

Algumas outras notas:

  • O Apache e o Passenger residem no mesmo servidor, portanto, não há um problema de tempo falso devido ao fato de os relógios do sistema estarem fora de sincronia.
  • Com relação ao processamento de SSL, o Apache captura o certificado SSL do cliente e o anexa como um cabeçalho na solicitação. O aplicativo de trilhos, então, manipula o restante do processamento.

Qual poderia ser o problema aqui?

    
por YWCA Hello 17.08.2016 / 22:37

1 resposta

3

200ms não parece tão terrível. A métrica 'enfileiramento de pedidos' é a medida do tempo entre o seu servidor da web registra a solicitação e o momento em que o agente da New Relic é carregado (após before_filters ). A maneira como isso é medido pode fazer parecer que há um problema, quando não existe. Sua latência é boa e uniforme, sem picos que indicariam que você está ficando sem funcionários ou precisando de recursos / CPU. Você pode usar watch passenger-status para verificar isso. Você também pode verificar o uso de recursos do servidor localmente usando os utilitários do Linux:

top, iotop, vmstat, sar (systat)

Ainda quer procurar otimizações? Confira tudo o que é executado antes do agente da New Relic. Pontos possíveis de dor:

Levará um pouco de escavação. Boa sorte!

    
por 08.11.2016 / 11:31