So messen Sie die Latenz in 7 Minuten richtig
Um die Latenz richtig messen zu können, müssen Sie über Qualitätsdaten verfügen. Es gibt einen Grund, warum KPMGs „2016 Global CEO Outlook“ festgestellt hat, dass 84% der CEOs besorgt über die Qualität der Daten sind, auf denen sie Entscheidungen treffen, und das liegt daran, dass Daten allzu oft irreführend sind.
Der Unterschied zwischen Unternehmen, die sich um ihre Daten kümmern und nicht, ist enorm. MIT-Forscher fanden heraus, dass Unternehmen, die ein datengesteuertes Design eingeführt haben, einen Output haben, der 5-6% höher ist als das, was angesichts ihrer anderen Investitionen und des Einsatzes von Informationstechnologie zu erwarten wäre. Allein aus diesem Grund ist das Verständnis der Latenz entscheidend für den Geschäftserfolg.
In nur 7 Minuten erfahren Sie alles, was Sie über die Messung der Latenz wissen müssen
- So messen Sie die Latenz
- Warum es wichtig ist, sie richtig zu messen
- häufige Fallstricke beim Betrachten Ihrer Latenzdaten
- die Kritikalität des sofortigen Feedbacks
- warum nicht abgetastete Daten erforderlich sind
Also, was ist Latenz?
Dictionary.com definiert Latenz als „die Verzögerungszeit, wenn eine Komponente eines Hardwaresystems darauf wartet, dass eine Aktion von einer anderen Komponente ausgeführt wird“. Einfacher ausgedrückt bedeutet dies die Zeitspanne zwischen dem Aufruf einer Funktion und ihrer tatsächlichen Ausführung. Latenz ist in allen Systemen inhärent; Selbst wenn wir ein perfektes System hätten (das es nicht gibt), wäre es latent die Zeit, die die Elektronen im Computer brauchen, um die Transistoren von ein auf aus oder umgekehrt zu schalten.
Latenz in kleinen Operationen ist keine große Sache, aber bei der Handhabung von Millionen von Operationen gibt es Millionen von Latenzen, die sich schnell summieren. Die Latenz wird nicht durch eine Arbeitseinheit / Zeit definiert, sondern durch ihr Verhalten. Überwachungstools berichten, wie lange es vom Start einer Funktion bis zum Ende der Funktion dauert.
Latenz kann einen großen Einfluss auf Ihr Unternehmen haben, zum Beispiel „Wenn es um mobile Geschwindigkeit geht, ist jede Sekunde wichtig — für jede weitere Sekunde, die eine mobile Seite zum Laden benötigt, können die Conversions um bis zu 20% sinken“(Quelle). Daher ist es von entscheidender Bedeutung, Ihre Latenz so gut wie möglich zu verstehen.
Häufige Fallstricke beim Betrachten Ihrer Latenzdaten:
Die Latenz folgt fast nie einer normalen Gaußschen oder Poisson-Verteilung. Selbst wenn Ihre Latenz aufgrund der Art und Weise, wie wir die Latenz beobachten, einer dieser Verteilungen folgt, sind Durchschnittswerte, Mediane und sogar Standardabweichungen nutzlos! Wenn Sie beispielsweise Seitenlasten messen, sind 99,9999999999% dieser Lasten möglicherweise schlechter als Ihr Median. (Klicken Sie, um diese Statistik zu twittern) Dies ist ein Teil des Grundes, warum das zufällige Abtasten Ihrer Daten zu ungenauen Daten führt, aber dazu später mehr.
An dieser Stelle fragen Sie sich wahrscheinlich, ob wir keine Standardabweichung verwenden, wie können wir Latenzen sinnvoll beschreiben? Die Antwort ist, dass wir Perzentile und Maxima betrachten müssen. Die meisten Leute denken sich, okay, also schaue ich mir P95 an und verstehe den „Common Case“. Das Problem dabei ist, dass P95 all die schlechten Sachen verbergen wird. Wie Gil Tene, CTO von Azul Systems, sagt: „Es ist ein“Marketingsystem“, Jemand wird betrogen.“
Nehmen Sie zum Beispiel diese Grafik:
Wenn Sie diese Grafik sehen, können Sie deutlich sehen, warum der Median und der Durchschnitt keine wirkliche Bedeutung haben. Wenn Sie sehen, dass das 95. Perzentil nach links schießt, denken Sie, dass Sie den Kern des Problems sehen.
Dies ist natürlich nicht wahr, wenn Sie untersuchen, warum Ihr Programm einen Schluckauf hatte, sehen Sie nicht die schlimmsten 5% von dem, was passiert ist. Um diese Art von Spitze zu erhalten, müssen die oberen 5% der Daten deutlich schlechter sein.
Sehen Sie sich nun dieselbe Grafik an, die auch das 99,99-te Perzentil zeigt:
Diese rote Linie ist das 95. Perzentil, während die grüne die 99,99. Wie Sie deutlich sehen können, zeigt das 95. Perzentil nur 2 von 22 Ihrer Probleme! Aus diesem Grund müssen Sie das gesamte Spektrum Ihrer Daten betrachten.
Trotz der Tatsache, dass viele Leute denken, dass die letzten 5% der Daten nicht so viel Bedeutung haben. Sicher, es könnte nur ein Neustart einer virtuellen Maschine oder ein Schluckauf in Ihrem System sein, oder so ähnlich, aber während das wahr ist, indem Sie es ignorieren, sagen Sie, dass es einfach nicht passiert, wenn es eines der wichtigsten Dinge für Sie sein könnte Ziel!
Gil Tenel macht gerne die kühne Behauptung, dass „der Indikator Nummer eins, den Sie niemals loswerden sollten, der Maximalwert ist. Das ist kein Rauschen, das ist das Signal. Der Rest ist Lärm.“ Während das Maximum in einem System in großem Maßstab in der Tat ein großer Vorteil ist, ist es oft nicht praktikabel, nur den Maximalfall zu verfolgen. Kein System ist perfekt und Schluckauf auftreten, in einem groß angelegten praktischen System verfolgt den maximalen Fall ausschließlich ist oft ein guter Weg, um Ihr Entwicklungsteam zu verbrennen.
Wenn Sie sich das 99,99-te Perzentil ansehen, sehen Sie, was mit der großen Mehrheit Ihrer Kunden passiert, und alle Spitzen, die Sie dort sehen, sind tatsächliche Probleme, während Spitzen in Ihrem Maximum nur ein Schluckauf in Ihrem System sein können. Wenn sich Ihre Devops-Teams auf diese kleinen Probleme konzentrieren, tun sie dies zu hohen Opportunitätskosten, da sie nicht stattdessen an größeren Problemen arbeiten können.
Es ist bemerkenswert, dass, wenn Ihr 99.99th und Ihr Maximum sehr nahe beieinander liegen (und beide versetzt sind), dies ein großartiges Signal dafür ist, dass dies ein Problem ist, an dem Ihr Team arbeiten sollte. Auf diese Weise hat Gil Recht, dass das Maximum ein großartiges Signal ist, aber falsch, dass der Rest Ihrer Daten nur Rauschen ist. Wie Sie in dieser Grafik sehen können:
Unsere 99.99. Perzentil und Maximum aus unserem vorherigen Beispiel stimmen genau überein. Dies ist ein großartiges Signal, dass das, was Sie betrachten, ein echter Fehler und nicht nur ein Schluckauf ist.
Durchschnitt der Perzentile: Wie die Vorberechnung dazu führt, dass Sie die Latenz falsch messen:
Eine noch schlimmere Falle, in die Menschen geraten, als nur auf das 95. Die Mittelung von Perzentilen ist statistisch absurd; Es entfernt alle Signifikanz von dem, was Sie betrachten. Wir haben bereits gezeigt, dass Durchschnittswerte nicht gut sind, wenn man sich die Latenz ansieht, und wenn man sich gemittelte Perzentile ansieht, ist man einfach wieder am Anfang. Viele Software-Durchschnitt Ihre Perzentile nehmen zum Beispiel dieses Grafana-Diagramm:
Ob Sie es vorher bemerkt haben oder nicht, alle Perzentile sind durchschnittlich! Es sagt so genau dort im X-Achsen-Ledger. FAST ALLE ÜBERWACHUNGSDIENSTE DURCHSCHNITTLICH IHRE PERZENTILE! Dies ist eine Realität aufgrund der Vorberechnung. Wenn Ihr Überwachungsdienst Ihre Daten aufnimmt, berechnet er das Perzentil der Daten für diese Minute.
Wenn Sie sich dann Ihr 95. Perzentil ansehen, wird ein Durchschnitt aller Ihrer Perzentile angezeigt. Diese Abkürzung für „Ihr Gut“, um Ihren Service schneller zu machen, entfernt in Wirklichkeit alle statistische Signifikanz aus Ihren Daten.
Warum Sie nicht abgetastete Daten haben müssen, um die Latenz richtig zu messen:
Unabhängig davon, ob Sie es wissen oder nicht, erzeugen Überwachungstools, die an der Datenstichprobe teilnehmen, gemittelte Daten. Fast jedes Monitoring-Tool sampelt seine Daten. Nehmen Sie zum Beispiel DataDog; Sie haben großen Datenverlust. Wenn Sie ihnen 3 Millionen Punkte in einer Minute senden, werden sie nicht alle nehmen. Stattdessen werden sie die Punkte zufällig abtasten und sie dann zu 1 Punkt pro Minute aggregieren.
Sie müssen über nicht abgetastete Daten verfügen, um Ihre Latenz zu verstehen. Es ist inhärent, dass Sie mit gesampelten Daten nicht auf die vollständige Distribution zugreifen können! Ihr Maximum ist nicht Ihr wahres Maximum, noch ist Ihr globales Perzentil eine genaue Darstellung dessen, was vor sich geht!
Abgetastete Daten verschärfen koordinierte Auslassung!
Wenn Sie Daten abtasten, lassen Sie Daten aus. Angenommen, Sie haben 10.000 Vorgänge in einer Minute, die jeweils 2 Datenpunkte an Ihr Überwachungssystem senden. Angenommen, Sie haben einen Fehler in Ihrem System und einer dieser Datenpunkte zeigt dies pro 10.000 Operationen an. Ihr Überwachungssystem hat nur eine Chance von 1/20.000, dies als den Datenpunkt zu wählen, den es Ihnen als Maximum anzeigt!
Wenn Sie lange genug laufen, wird der Datenpunkt irgendwann angezeigt, aber als Ergebnis wird es wie ein sporadischer Randfall aussehen, obwohl es einem Ihrer Kunden jede Minute passiert! Wenn Sie keine Daten abtasten und eine dieser Spitzen haben, wird diese in Ihrem 99,99-ten Perzentil deutlich angezeigt, und Ihr Maximum wird in der Nähe angezeigt, was Ihnen signalisiert, dass Sie einen Fehler in Ihrem Programm haben. Wenn Sie Ihre Daten jedoch abtasten, werden sie nicht so oft angezeigt, was bedeutet, dass Sie sie nicht als Fehler, sondern als Schluckauf sehen. Dies bedeutet, dass Ihr Engineering-Team die Bedeutung davon nicht erkennen wird!
Lassen Sie sich von Ihrem Überwachungstool nicht dazu verleiten zu glauben, Sie wüssten, was mit Ihrer Latenz los ist.
Wählen Sie ein Tool aus, das keine Stichprobendaten liefert. Wählen Sie ein Tool, das Ihre globalen Perzentile nicht mittelt. Starten Sie noch heute eine kostenlose zweiwöchige Testversion!