Was bedeuten die Zeiten in der Zeitleiste von Google Chrome im Netzwerkfenster?

82

Bei der Fehlerbehebung bei der Leistung über das Netzwerkfenster von Google Chrome sehe ich häufig unterschiedliche Zeiten und frage mich oft, was sie bedeuten.

Kann jemand bestätigen, dass ich diese richtig verstehe:

  1. Blockieren: Zeit blockiert durch mehrfache Anforderung des Browsers für dasselbe Domain-Limit (???)
  2. Warten: Warten auf eine Verbindung vom Server (???)
  3. Senden: Zeitaufwand für die Übertragung der Datei vom Server zum Browser (???)
  4. Empfangen: Zeit, die der Browser für die Analyse und Dekodierung der Datei benötigt (???)
  5. DNS-Suche: Zeitaufwand für das Auflösen des Hostnamens.
  6. Verbinden: Zeitaufwand für den Aufbau einer Socket-Verbindung.

Wie würde jemand lange Sperrzeiten beheben?

Wie würde jemand lange Wartezeiten beheben?

Patrick Vergiss
quelle
Teilweise dupliziert: stackoverflow.com/questions/8795408/…
Alexander Pavlov

Antworten:

92

Das Senden ist die Zeit, die für das Hochladen der Daten / Anforderungen auf den Server aufgewendet wird. Es tritt zwischen Blockieren und Warten auf. Wenn ich beispielsweise eine ASPX-Seite zurückschicke, gibt dies an, wie lange es gedauert hat, die Anforderung (einschließlich der Werte der Formulare und des Sitzungsstatus) wieder auf den ASP-Server hochzuladen.

Warten ist die Zeit, nachdem die Anforderung gesendet wurde, aber bevor eine Antwort vom Server empfangen wurde. Grundsätzlich ist dies die Zeit, die für das Warten auf eine Antwort vom Server aufgewendet wird.

Der Empfang ist die Zeit, die zum Herunterladen der Antwort vom Server benötigt wird.

Das Blockieren ist die Zeitspanne zwischen dem Starten der Anforderung durch den UI-Thread und dem Aufrufen der HTTP-GET-Anforderung auf die Leitung.

Die Reihenfolge, in der diese auftreten, ist:

  1. Blockierung*
  2. DNS-Suche
  3. Anschließen
  4. Senden
  5. Warten
  6. Empfang

* Blockierung und DNS-Suche werden möglicherweise ausgetauscht.

Auf der Registerkarte Netzwerk wird nicht angegeben, wie viel Zeit für die Verarbeitung aufgewendet wurde.

Wenn Sie lange Blockierungszeiten haben, läuft der Computer, auf dem der Browser ausgeführt wird, langsam. Sie können dies beheben, indem Sie den Computer aktualisieren (mehr RAM, schnellerer Prozessor usw.) oder die Arbeitslast reduzieren (nicht benötigte Dienste deaktivieren, Programme schließen usw.).

Lange Wartezeiten zeigen an, dass Ihr Server lange braucht, um auf Anfragen zu antworten. Dies bedeutet entweder:

  • Die Verarbeitung der Anforderung dauert lange (z. B. wenn Sie eine große Datenmenge aus der Datenbank abrufen, große Datenmengen sortiert werden müssen oder eine Datei auf einer Festplatte gefunden werden muss, die hochgefahren werden muss).
  • Ihr Server empfängt zu viele Anfragen, um alle Anfragen in angemessener Zeit zu bearbeiten (die Verarbeitung einer Anfrage kann 0,02 Sekunden dauern, bei 1000 Anfragen tritt jedoch eine spürbare Verzögerung auf).

Die beiden Probleme (langes Warten + langes Blockieren) hängen zusammen. Wenn Sie die Arbeitslast auf dem Server reduzieren können, indem Sie zwischenspeichern, einen neuen Server hinzufügen und die für aktive Seiten erforderliche Arbeit reduzieren, sollten Sie in beiden Bereichen Verbesserungen feststellen.

Trisped
quelle
Meinten Sie im letzten Absatz nicht langes Warten + langes Empfangen?
Valentin
@ Valentin Receiving wäre eher Ihre Internetverbindung und der Server. Langes Blockieren würde ein Problem mit Ihrem PC bedeuten.
Trisped
23

Eine ausführliche offizielle Erklärung des Google-Teams finden Sie hier. Es ist eine sehr hilfreiche Ressource und Ihre Informationen finden Sie im Abschnitt Zeitleistenansicht .

Das Timing des Ressourcennetzwerks zeigt dieselben Informationen wie in der Ressourcenleiste in der Timeline-Ansicht. Beantwortung Ihrer Frage:

  • DNS-Suche : Zeitaufwand für die DNS-Suche. (Sie müssen die IP-Adresse von site.com herausfinden und dies braucht Zeit.)
  • Blockieren : Zeit, die die Anforderung damit verbracht hat, darauf zu warten, dass eine bereits hergestellte Verbindung zur Wiederverwendung verfügbar wird. Wie in einer anderen Antwort gesagt, hängt es nicht von Ihrem Server ab - dies ist das Problem des Clients.
  • Verbindung herstellen : Zeit, die zum Herstellen einer Verbindung benötigt wurde, einschließlich TCP-Handshakes / -Wiederholungen, DNS-Suche und Zeit zum Herstellen einer Verbindung zu einem Proxy oder zum Aushandeln einer SSL (Secure-Socket-Schicht). Hängt von der Überlastung des Netzwerks ab.
  • Senden - Zeitaufwand für das Senden der Anfrage. Abhängig von der Größe der gesendeten Daten (die meist klein sind, da Ihre Anfrage fast immer einige Bytes umfasst, außer wenn Sie ein großes Bild oder eine große Textmenge senden), der Überlastung des Netzwerks und der Nähe des Clients zum Server
  • Warten - Wartezeit auf die erste Antwort. Dies ist meistens die Zeit Ihres Servers, um Ihre Antwort zu verarbeiten und darauf zu antworten. So schnell berechnet Ihr Server Dinge, ruft Datensätze aus der Datenbank ab und so weiter.
  • Empfangen - Zeitaufwand für den Empfang der Antwortdaten. Ähnlich wie beim Senden, aber jetzt erhalten Sie Ihre Daten vom Server (die Antwortgröße ist meistens größer als die Anforderung). Es kommt also auch auf die Größe, die Verbindungsqualität usw. an.
Salvador Dali
quelle
0

Blockieren : Zeit, die die Anforderung damit verbracht hat, darauf zu warten, dass eine bereits hergestellte Verbindung zur Wiederverwendung verfügbar wird. Wie in einer anderen Antwort gesagt, hängt es nicht von Ihrem Server ab - dies ist das Problem des Clients .

Ich stimme der obigen Aussage nicht zu. Alles andere ist gleich [meine Maschinenauslastung] - mein Browser zeigt sehr wenig "Blockierungs" -Zeit für eine Website und lange Blockierungszeit für eine andere Website an.

Wenn also das Warten auf einen der sechs Threads + Proxy-Aushandlung ** hoch ist, liegt dies hauptsächlich am Kaskadeneffekt der Langsamkeit des Servers ODER am schlechten Design der Seite [zu viel wird zu oft über das Kabel gesendet].

** - was auch immer "Proxy Negotiation" bedeutet! Niemand erklärt dies sehr gut, insbesondere wenn kein lokaler / CDN-Proxy tatsächlich beteiligt ist

Arun
quelle