Мы размещаем веб-приложение ASP.Net MVC на Windows Server 2012, которое работает по протоколу HTTPS. В большинстве случаев все идет хорошо и быстро, но мы заметили, что примерно 1 из 50 запросов на статические файлы (например, изображения, javascript) для завершения требуется несколько секунд. Некоторые динамические страницы также требуют времени для завершения, но иногда это ожидается (например, выполнение сложного запроса к базе данных), хотя и не всегда.
Мы настроили отслеживание неудачных запросов на веб-сайте в IIS 8 и установили правило для регистрации всего, что занимает более 2 секунд. Мы получаем примерно один файл журнала, генерируемый в минуту, и я не могу определить закономерность - например, это не всегда один и тот же статический файл.
В приведенном ниже примере запрос изображения PNG размером 20 КБ занял 2215 мсек. Насколько я понимаю, это не зависит от скорости подключения пользователя и что это как раз время, затраченное сервером на обработку запроса (поправьте меня, если я ошибаюсь).
Я не понимаю, почему Просмотр производительности просто показывает 0 мс для каждого элемента. Аналогичным образом в Компактный вид все времена точно такие же. Это означает, что невозможно увидеть, какая часть запроса замедляет работу. Я предполагаю, что сумма всех цифр в Просмотр производительности добавит к Затраченное время фигура. Есть ли причина, по которой мне не хватает, почему это может быть не так?
На всякий случай, это экземпляр Amazon EC2 с файлами изображений, хранящимися на томе EBS с поддержкой SSD. Нагрузка на ЦП на сервере стабильная 10-20%.
Это приложение asp / c #? Вы можете проверить C: \ Windows \ System32 \ Logfiles \ HTTPERR на наличие ошибок IIS и в журналах w3c для определения времени.
Я готов поспорить, что это запросы от мобильных устройств, Perf View из FRT ничего не показывает, потому что эти запросы застревают в IIS, отправляющем байты, а не в каких-либо из этих модулей / событий, перечисленных в FRT.
Посмотрите, сможете ли вы поймать один из них в представлении «Текущие запросы» в IIS, документы msdnили, альтернативно, посмотрите журналы IIS, получите кучу этих медленных запросов и кто несколько IP. Скорее всего, они от мобильных операторов.