Was ist Latenz?
Latenz ist die Verzögerung zwischen dem Senden einer Anfrage und dem Eintreffen der Antwort. MDN definiert Netzwerklatenz als die Zeit, die ein Datenpaket von der Quelle zum Ziel braucht, meist als Round-Trip gemessen. Lasttest-Tools verwenden oft eine engere Bedeutung: die Zeit bis zum ersten Byte der Antwort. Beides wird in Millisekunden angegeben.
Latenz, Antwortzeit und TTFB: Welche Zahl ist welche?
Das Wort steht für drei verwandte Dinge, und die Tools sind sich nicht einig:
- Netzwerklatenz: die Laufzeit zwischen zwei Rechnern, einfach oder als Round-Trip (RTT). Sie hängt von Entfernung und Route ab, nicht von Ihrem Code.
- Latenz in JMeter: Laut Glossar misst JMeter sie "von kurz vor dem Senden der Anfrage bis kurz nach dem Empfang der ersten Antwort". Die Elapsed Time läuft bis zum Eintreffen der letzten Antwortdaten.
- Time to First Byte: Die k6-Metrik
http_req_waitingist die Wartezeit auf die Antwort, die k6 selbst TTFB nennt.http_req_durationist Senden plus Warten plus Empfangen, der Verbindungsaufbau wird getrennt ausgewiesen. Mehr dazu unter Time to First Byte.
Die Antwortzeit ist die gesamte Wartezeit bis zur vollständigen Antwort, also das, was Nutzer spüren. Prüfen Sie beim Vergleich zweier Berichte, welche Definition das jeweilige Tool meldet. Der Blogbeitrag zur Antwortzeit im Performance-Test geht auf diese Seite genauer ein.
Woher Latenz kommt
- Verbindungsaufbau. Laut MDN umfasst die erste Anfrage DNS-Abfrage, TCP-Handshake und TLS-Aushandlung. Spätere Anfragen auf derselben Verbindung sparen das meiste davon.
- Entfernung. Ein weit entfernter Nutzer zahlt bei jedem Schritt mehr Round-Trip-Zeit. Ein CDN verkürzt das für cachebare Inhalte.
- Serverarbeit. Anwendungscode, Datenbankabfragen und Aufrufe anderer Dienste zeigen sich als Wartezeit vor dem ersten Byte.
- Warteschlangen unter Last. Wenn Anfragen auf eine freie Verbindung, einen Thread oder einen Datenbank-Slot warten, steigt die Latenz, obwohl die einzelne Arbeit gleich bleibt.
- Downloadgröße. Laut MDN hängt die Empfangszeit von Netzwerkkapazität und Dateigröße ab.
Latenz und Durchsatz
Latenz ist die Dauer einer Anfrage. Durchsatz ist die Zahl der Anfragen, die das System pro Zeiteinheit abschließt. Ein System kann für einen Nutzer schnell sein und bei hundert zusammenbrechen, deshalb müssen beide zusammen beobachtet werden. Wie die Latenz mit der Last wächst, zeigen Lasttests und Kapazitätstests. Der Blogbeitrag Durchsatz und Antwortzeit im Zusammenhang zeigt den Verlauf dieser Kurve.
Warum Durchschnittswerte das Problem verdecken
Nehmen wir 99 Anfragen mit 100 ms und eine mit 30 Sekunden. Der Durchschnitt liegt bei rund 400 ms und wirkt unauffällig, obwohl ein Nutzer eine halbe Minute gewartet hat. Perzentile beschreiben stattdessen die Verteilung: p50 ist der Median, p95 heißt, 95 % der Anfragen waren schneller, p99 entsprechend 99 %. Das Google-Paper The Tail at Scale erklärt, warum seltene langsame Antworten mit wachsenden Systemen wichtiger werden. Zur Testseite lesen Sie warum Perzentile besser sind als Durchschnitte.
Beispiel: ein Latenz-Schwellenwert im Test
In k6 können Sie einen Lauf scheitern lassen, wenn der Tail zu langsam wird. Die Ausdrücke werden am Testende ausgewertet. Ist einer falsch, gilt der Test als fehlgeschlagen und k6 beendet sich mit einem Exit-Code ungleich null:
thresholds: { http_req_duration: ['p(95) < 500', 'p(99) < 1000'] }
Die Zahlen sind ein Beispiel. Legen Sie Ihre Werte nach den Anforderungen Ihrer Nutzer und Ihres SLA fest, nicht nach einem Standardwert.
Latenz messen und senken
- Dort messen, wo die Nutzer sind. Lasttests von LoadFocus laufen aus 25 Cloud-Regionen und zeigen Antwortzeit, Latenz, Durchsatz, Standardabweichung sowie das 50., 90. und 99. Perzentil, mit Schwellenwerten für P95 und P99. Ein Test aus nur einer Region sagt wenig über Nutzer anderswo.
- Im Betrieb beobachten. Das API-Monitoring erfasst die Antwortzeit nach Zeitplan (kostenlose Checks laufen alle 5 Minuten) und warnt, wenn ein Endpunkt einen Degraded-Schwellenwert überschreitet. Welche Kennzahlen sich lohnen, steht unter API-Performance-Kennzahlen. Die Fallstudie API-Latenz senken zeigt das Vorgehen.
- Kosten pro Anfrage senken. Verbindungen wiederverwenden, Caching nutzen, statische Dateien über ein CDN ausliefern, weniger Hostnamen verwenden und zuerst langsame Abfragen beheben.
Häufige Fehler
- Nur den Durchschnitt berichten.
- Aus derselben Region wie der Server testen und auf alle Nutzer schließen.
- Zahlen von Tools vergleichen, die Latenz unterschiedlich definieren.
- Die erste Anfrage ignorieren, die DNS-, TCP- und TLS-Kosten trägt.
- Ein Latenzziel mit einem Durchsatzziel verwechseln.
Häufige Fragen: Latenz
Was ist eine gute Latenz?
Eine allgemeingültige Zahl gibt es nicht. Sie hängt von der Art der Anfrage, den Nutzern und Ihrem SLA ab. Legen Sie ein Ziel auf ein Perzentil wie p95 fest, messen Sie es unter realistischer Last und aus den Regionen Ihrer Nutzer und verschärfen Sie es mit zunehmender Optimierung.
Was ist der Unterschied zwischen Latenz und Antwortzeit?
Latenz meint meist die Verzögerung bis zum Beginn der Antwort oder die Netzwerklaufzeit. Die Antwortzeit ist die gesamte Wartezeit bis zur vollständigen Antwort. Tools definieren beides leicht unterschiedlich, lesen Sie daher die Dokumentation Ihres Tools.
Was ist der Unterschied zwischen Latenz und Bandbreite?
Latenz ist Verzögerung. Bandbreite ist die Datenmenge, die die Verbindung pro Sekunde transportieren kann. Ein großer Download wird durch die Bandbreite begrenzt, eine Seite mit vielen kleinen Anfragen durch die Latenz.
Worin unterscheidet sich Latenz von TTFB?
TTFB misst die Zeit bis zum ersten Byte der Antwort und enthält damit Netzwerklatenz plus Wartezeit des Servers. Manche Tools, darunter JMeter, nennen diese Zahl Latenz.
Warum ist die p99-Latenz höher als p50?
Die meisten Anfragen sind schnell, wenige sind langsam, etwa wegen Cache-Misses, Garbage Collection, Sperren oder Warteschlangen. p99 zeigt genau diese wenigen und ist deshalb die Zahl für die schlechtesten Erfahrungen.
Verwandte Begriffe
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um, derselben Plattform, die alles antreibt, was du gerade gelesen hast.