Servir lento de arquivos estáticos com o IIS 8

3

Estamos hospedando um aplicativo da Web ASP.Net MVC no Windows Server 2012, executado em HTTPS. Na maioria das vezes, tudo é bom e rápido, mas notamos que cerca de 1 em 50 solicitações de arquivos estáticos (por exemplo, imagens, javascript) levam alguns segundos para serem concluídas. Algumas páginas dinâmicas também demoram um pouco para serem concluídas, mas às vezes isso é esperado (por exemplo, executar uma consulta de banco de dados complexa), embora nem sempre.

Nós configuramos o Failed Request Tracing no site do IIS 8 e definimos uma regra para registrar qualquer coisa que demore mais de 2 segundos. Estamos obtendo cerca de um arquivo de log gerado por minuto, e não há nenhum padrão que eu possa identificar - não é como se fosse sempre o mesmo arquivo estático, por exemplo.

No exemplo abaixo, a solicitação de uma imagem PNG de 20kb levou 2.215 mseg para ser concluída. Meu entendimento é que esse não depende da velocidade de conexão do usuário e que este é apenas o tempo que o servidor levou para processar a solicitação (corrija-me se estiver errado).

O que eu não entendo é por que o Performance View mostra apenas 0ms para cada item. Da mesma forma na Vista compacta todas as horas são exatamente as mesmas. Isso significa que não é possível ver qual parte da solicitação está atrasando as coisas. Minha suposição seria que a soma de todas as figuras na Vista de Desempenho seria adicionada à figura Tempo gasto . Existe uma razão pela qual estou perdendo por que isso pode não ser o caso?

Caso seja relevante, essa é uma instância do Amazon EC2 com os arquivos de imagem armazenados em um volume do EBS com suporte a SSD. A carga da CPU no servidor é de 10 a 20% constante.

    
por philwilks 21.01.2015 / 13:27

2 respostas

0

Eu apostaria que essas são solicitações de dispositivos móveis, o Perf View do FRT não está mostrando nada porque essas solicitações ficam presas no IIS enviando os bytes, não em nenhum desses módulos / eventos listados no FRT.

Veja se você pode encontrar um desses no modo de exibição "Solicitações Atuais" no IIS, msdn docs ou, alternativamente, procure nos logs do IIS, obtenha um monte desses pedidos lentos e who.is vários IPs . As probabilidades são de provedores móveis.

    
por 20.02.2015 / 19:52
0

É um aplicativo asp / c #? Você pode verificar em C: \ Windows \ System32 \ Logfiles \ HTTPERR para erros do IIS, e nos logs w3c para o tempo.

    
por 21.01.2015 / 14:39