Descobrir quanto tempo o nginx gastou em cada etapa de um processamento de solicitação

3

Estamos usando o Nginx como um proxy reverso para um servidor back-end do IIS que serve o aplicativo .NET WCF.

Recentemente, notei uma degradação do tempo de resposta do overhead. O que quero dizer com isso é que eu costumava ver uma diferença de 6ms entre $ request_time e $ upstream_response_time, agora estou em 22ms.

O número de conexões ativas não aumentou, nem as solicitações contam, tamanho, tamanho de resposta. A CPU e o disco IO são muito baixos. O tráfego de rede parece estar bem também.

Eu tentei:

  • Desativando SSL, sem alteração.
  • Alterando a configuração do nginx de volta para os valores padrão, sem alteração.
  • A máquina foi reconstruída a partir do zero, sem alterações.
  • Uma VM muito mais lenta com a configuração original e a sobrecarga é muito baixa, +/- 6 ms.

Como posso investigar este problema ...?

Existe uma maneira de ver quanto tempo o nginx gastou em cada etapa de um processamento de solicitação? Não é possível encontrar essa resposta procurando no error.log no modo de depuração.

Obrigado

    
por Sebastien 27.09.2013 / 20:55

2 respostas

0

não há um caminho fácil (eu sei) para fazer isso:

  • nginx + lua
  • hackear ngx_log - módulo
  • crie o seu próprio. ngx_module personalizado

dependendo de quão profundo você precisa ir dentro do nginx, a solução luad pode estar ok ou não é suficiente; usando lua você pode acessar / modificar (e assim medir) diferentes fases de uma requisição

  • acessar
  • reescrever
  • geração de conteúdo

do que você escreveu, eu não gostaria de ser aquele que tem que depurar seu problema:)

    
por 28.09.2013 / 09:49
0

Adicionando uma resposta porque não posso comentar.

As razões para uma desaceleração podem ser completamente não relacionadas ao nginx.

Acho que você deve tentar avaliar sua latência de leitura de disco, desde que voltou a a configuração padrão não mudou as coisas.

    
por 03.06.2014 / 15:46

Tags