Я пытаюсь понять, почему статическое изображение, обслуживаемое IIS, загружается примерно за 182 мс. Используя Chrome, я получил следующую информацию о времени.
Когда я запрашиваю то же изображение, открывая Chrome напрямую на веб-сервере, я вижу, что время ожидания упало до 2-5 мс.
Я пытаюсь понять информацию о времени, отображаемую Chrome. Согласно Документация Google, время «подключения» включает в себя квитирование TCP, а «ожидание» представляет «время, потраченное на ожидание первоначального ответа».
Я точно знаю, что веб-серверу требуется не более 2-5 мс для обслуживания изображения, так как же мое "ожидающее" число показывает ~ 130 мс? Даже если он включает одностороннюю задержку между сервером и моим браузером для передачи пакета, 130 мс не имеют смысла, потому что «соединение» заняло в общей сложности 0,338 мс! Эти числа не складываются!
Одно из различий между загрузкой изображения на сервер и его удаленной загрузкой заключается в том, что IIS хочет найти ваш удаленный IP-адрес и отменить его. Часть этого времени может ждать ответа от DNS-сервера, который не является локальным по отношению к веб-серверу.
Вы можете проверить это, если у вас есть доступ к серверу IIS достаточно глубоко, чтобы поместить IP-адрес тестовой машины вашего клиента в файл HOSTS. Вы также можете с сервера проверить связь с DNS-серверами, которые настроены в сетевом стеке, и посмотреть, находятся ли они примерно в 100 мс.
Если вы загружаете несколько изображений из одного домена, Chrome имеет ограничение в 6 параллельных подключений на домен. При этом происходит следующее: когда первое соединение освобождается, оно используется для загрузки следующего изображения. На диаграмме времени / водопада вы увидите, что изображения загружаются по одному из-за этого эффекта просачивания. «Поздние» изображения должны дождаться установления соединения. Если это не так, опубликуйте диаграмму, показывающую 2–3 соединения перед конкретной загрузкой. Спасибо.
Здесь много всего вовлеченного. Что вам, вероятно, нужно, так это более совершенные детективные инструменты.
Скачать WireShark и научитесь им пользоваться. Это позволяет более четко видеть сетевой трафик. (Не то чтобы это проблема сетевого трафика, но вам нужно начать устранять потенциальные проблемы.) Там есть множество отличных видео, связанных с тем, как его использовать. Вот это тот, который может иметь отношение к вашей проблеме.
Также для проблем с http загрузите и научитесь использовать Скрипач.