Laut http://support.microsoft.com/kb/944884 "kann der Wert des Zeitfelds höher sein als erwartet, wenn eine große Antwort oder große Antworten über eine langsame Netzwerkverbindung an einen Client gesendet werden".
Ich habe eine Situation, in der ein Client sagt: "Ich habe um 10:03:24 eine Anfrage an Ihren Webserver gesendet und es hat 20 Sekunden gedauert, warum?". Ich kann dies auch in den IIS-Protokollen sehen, aber das ASP.NET-Modul des Servers hat es als 100 ms lang protokolliert, und die CPU- und Festplattenzähler waren niedrig.
Ich vermute, dass es an einer langsamen Netzwerkverbindung liegt. Wie kann ich das beweisen?
Aktualisieren:
1) Dies sind SOAP-Webdienstanforderungen, daher keine eingebetteten Grafiken, sondern nur ein HTTP-POST mit einer einzelnen XML-Ergebnisseite.
2) Außerdem habe ich dies reproduziert, indem ich die Netzwerkgeschwindigkeit auf der Clientseite gedrosselt habe, und die Symptome sind genau gleich.
3) Das Problem tritt nur sporadisch auf, was bedeutet, dass dieselbe Anforderung für den Client normalerweise schnell, gelegentlich jedoch langsam ist. Ich kann das nur reproduzieren, indem ich das Netzwerk drossle. Die ASP.NET-Protokollierung des Servers zeigt es immer schnell an, aber die IIS-Protokollierung zeigt es langsam an, wenn der Client sagt, dass es langsam ist.
4) Ich habe nur Zugriff auf den Server und muss dem Client so viele Informationen wie möglich zur Verfügung stellen, damit er akzeptiert, dass das Problem nicht auf dem Server liegt, und weiß, welche Protokollierung / Tools auf dem Client ausgeführt werden müssen, um die Grundursache zu finden.
Antworten:
Es beginnt mit der Suche nach Paket-Drops zwischen dem Browser Ihres Kunden und allen Quellen von Bildern / Skripten / HTML für die oben genannte Webseite. Wenn Sie konsistente Paketverluste feststellen, wissen Sie mit Sicherheit, dass im Netzwerk etwas repariert werden muss ... auch wenn es sich nur um eine überlastete Verbindung handelt. Paketverluste sind nicht der einzige Grund für ein langsames Netzwerk, aber meiner Erfahrung nach die häufigste Quelle. Andere Quellen könnten eine falsch konfigurierte Proxy- oder Cache-Engine sein. Leider kann ich hier nicht alle möglichen Netzwerkschuldigen auflisten.
Die Leute geben jedoch häufig dem Netzwerk die Schuld, obwohl die Geschwindigkeitsprobleme tatsächlich in ihrer eigenen Kontrolle liegen. Mögliche Erklärungen:
Ich könnte weitermachen, aber der Punkt ist, dass Sie den genauen Grund dafür herausfinden müssen, warum die Seite selbst langsam ist. Ein fehlerhaftes Netzwerk ist möglich; Es ist auch möglich, dass andere Faktoren zur langsamen Leistung beitragen.
Um weiter zu diagnostizieren:
curl
bis Sie etwas finden, das viel zu langsam aussieht, und dann herauszufinden, warum dieses bestimmte Element ist langsam.Übrigens verwendeten die Chrome- und Firefox-Beispiele eine CGI-Abfrage von Debian.org . Dies ist ein gutes Beispiel für eine Verzögerung, die durch eine CGI-Suche verursacht wird.
Wenn alles andere fehlschlägt, können Sie ein
.pcap
von Wireshark erhalten und es durchlaufen lassentcptrace
. Obwohltcptrace
es sehr gut ist, Paket-Dumps zu analysieren, gibt es keine Garantie dafür, dass Sie das Problemtcptrace
allein isolieren können. In dieser Antwort finden Sie Informationen zur Verwendung dertcptrace
Diagnose.quelle
Das Ergebnis des kb-Artikels 944884 ist, dass die tatsächliche Zeit, die zum Abschließen der Antwort erforderlich ist, möglicherweise nicht genau im Protokoll wiedergegeben wird. Aus diesem Grund wird in dem Artikel die Netzwerkzeit erwähnt.
Wenn das Symptom reproduzierbar ist, würde ich eine Paketerfassung auf der Serverseite (und vorzugsweise auch auf der Clientseite) durchführen, um die tatsächlichen Zeiten zu ermitteln, zu denen die Verbindung vom Client bestätigt wurde.
quelle
Die Verzögerung von 20 Sekunden kann auch dadurch verursacht werden, dass IIS die Datei w3wp.exe neu starten muss, die in den Ruhezustand wechselt, wenn sie nicht verwendet wird.
quelle