O HTTP do site do ASP.NET do Azure solicita enfileirado

3

Temos um site implantado no Azure que tem um desempenho terrível. Quando a carga aumenta, os tempos de resposta aumentam para minutos inteiros! A carga da CPU nem é alta, em algum lugar na região de 40% (nós executamos uma instância média (S2)).

Depois de muita depuração (eu não tinha ideia do que causou isso), eu finalmente deparei com um log 'FREB' onde diz que os pedidos estão sendo enfileirados:

  1. AspNetStart Data1="GET", Data2="/ profiel / aanvullen", Data3="" 13: 48: 44.279
  2. AspNetReqQueued 13: 48: 44.810
  3. AspNetReqDequeued 13: 49: 39.545
  4. AspNetAppDomainEnter Data1="/ LM / W3SVC / xxxx / ROOT-1-xxxxx

Acredito que as instâncias do Azure seriam configuradas de maneira "ótima" para que eu não precisasse se preocupar com a configuração de itens como maxconnection ou maxConcurrentThreadsPerCPU . O site não usa banco de dados, mas invoca duas APIs REST diferentes, então pensei que o enfileiramento ocorreria lá. Eu tentei verificar a propriedade webrequest.ServicePoint.ConnectionLimit , mas me lembro de ter impresso algo como 2 milhões (ou pode ter sido int max).

Como o uso da CPU é baixo, o Azure não gera uma nova instância e não acho que outra instância ajude.

Basicamente, tenho duas perguntas:

  1. Qual poderia ser a causa disso / o que devo mudar?
  2. Como eu poderia depurar isso? Existem muitos gráficos e configurações no Azure. Não tenho certeza de onde posso ver exatamente o que preciso ver. A largura de banda é um afunilamento, o número de solicitações abertas para um determinado serviço da web, algo mais, etc.
por Razzie 12.06.2015 / 16:56

0 respostas