Согласно http://support.microsoft.com/kb/944884 , «когда большой ответ или большие ответы отправляются клиенту по медленному сетевому соединению, значение поля, занимающего время, может оказаться больше ожидаемого».
У меня есть ситуация, когда клиент скажет: «Я отправил запрос на ваш веб-сервер в 10:03:24, и это заняло 20 секунд, почему?». Я также вижу это в журналах IIS, но серверный модуль ASP.NET записал его как 100 мс, а счетчики ЦП и Диска были низкими.
Я подозреваю, что это связано с медленным подключением к сети. Как я могу доказать это?
Обновить:
1) Это запросы веб-службы SOAP, следовательно, нет встроенной графики, только HTTP POST с одной страницей результатов XML.
2) Кроме того, я воспроизвел это, ограничив скорость сети на стороне клиента, и симптомы точно такие же.
3) Проблема временная, то есть один и тот же запрос обычно быстрый для клиента, но иногда медленный. Я не могу воспроизвести это сам, кроме как путем дросселирования сети. Ведение журнала ASP.NET на сервере всегда показывает скорость, а в IIS - медленно, когда клиент говорит, что это медленно.
4) У меня есть доступ только к серверу, и я должен предоставить клиенту как можно больше информации, чтобы они согласились с тем, что проблема была не на сервере, и знают, какие журналы / инструменты запускаются на клиенте для поиска первопричины.
Ответы:
Он начинается с поиска пакетов пакетов между браузером вашего клиента и всеми источниками images / scripts / html для вышеупомянутой веб-страницы. Если вы обнаружите постоянные отбрасывания пакетов, то вы точно знаете, что в сети есть что-то, что необходимо исправить ... даже если это просто перегруженная ссылка. Отбрасывание пакетов - не единственная причина медленной сети, но это самый распространенный источник в моем опыте. Другими источниками могут быть неправильно настроенный прокси или механизм кэширования. К сожалению, я не могу перечислить всех возможных виновников сети здесь.
Однако люди часто обвиняют сеть, когда на самом деле проблемы со скоростью находятся в пределах их собственного контроля. Возможные объяснения:
Я мог бы продолжить, но суть в том, что вы должны точно определить причину, по которой страница медленно работает самостоятельно. Возможна некорректная сеть; Также возможно, что другие факторы способствуют снижению производительности.
Для дальнейшей диагностики:
curl
пока не найдете что-то, что выглядит слишком медленно, а затем выяснить, почему этот конкретный элемент медленный.Кстати, примеры Chrome и Firefox использовали CGI-запрос от Debian.org ; Это хороший пример задержки, возникающей при поиске CGI.
Когда все остальное терпит неудачу, вы можете получить
.pcap
из wireshark и пропустить егоtcptrace
; однако, хотяtcptrace
он очень хорош при анализе дампов пакетов, нет никаких гарантий, что вы можете изолировать проблему с помощьюtcptrace
одной. Смотрите этот ответ для получения информации об использованииtcptrace
диагностики.источник
Результатом статьи 944884 в КБ является то, что фактическое время, необходимое для завершения ответа, может не быть точно отражено в журнале. Именно поэтому в статье упоминается сетевое время.
Если симптом воспроизводим, я бы выполнил захват пакета на стороне сервера (и предпочтительно на стороне клиента), чтобы увидеть фактическое время, когда соединение было подтверждено клиентом.
источник
Задержка в 20 секунд также может быть вызвана перезапуском IIS его файла w3wp.exe, который переходит в спящий режим, когда он не используется.
источник