Home Blogs Messen der Mitte mit dem Wiederholungsverhältnis
Applications

Messen der Mitte mit dem Wiederholungsverhältnis

About The Author

Outline

Beim Betrieb eines großen globalen Netzwerks ist die Gewährleistung einer guten Konnektivität und Leistung zwischen Systemen, die über das öffentliche Internet kommunizieren, von entscheidender Bedeutung für eine positive Benutzererfahrung. Angesichts des komplexen und bestmöglichen Charakters des Internets haben selbst die am besten bereitgestellten Links zu den zuverlässigsten Anbietern manchmal Probleme.

Es gibt eine Reihe von Strategien zur Überwachung solcher Verbindungen, einschließlich aktiver Messung, die speziell für die Messung von Verkehr erzeugt, und passiver Messung, die den bestehenden Verkehr überwacht. In diesem artikel beschreiben wir einen passiven Ansatz, bei dem unser xTCP-Socket-Sampling-System verwendet wird, um viele solcher Verbindungen passiv zu überwachen, von denen unser Netzwerk abhängt.

Um das Beste aus den xTCP-Daten herauszuholen, haben wir einen Ansatz zur Verarbeitung dieser Daten entwickelt, der einige der Herausforderungen im Zusammenhang mit der Internet-Überwachung bewältigt. Insbesondere führen wir ein Konzept ein, das wir das Retransmitting Ratio nennen, das ein relatives Maß für den Schweregrad der Retransmitts zwischen CDN-Sites (Content Delivery Network) liefert. Wir zeigen, dass das Wiederholungsverhältnis über bestimmten Ebenen einer Verschlechterung des Durchsatzes entspricht, die sich direkt auf die vom Benutzer wahrgenommene Leistung auswirkt. Dies ist daher eine ausgezeichnete Grundlage für die Netzwerkautomatisierung, die es uns ermöglicht, die Verschlechterung der Netzwerkleistung zu umgehen.

Hintergrund

Bei einem gemeinsamen Workflow im CDN geht ein Point of Presence (POP) an einen anderen, um einen bestimmten Inhalt abzurufen, z. B. um einen Inhalt in den Cache abzurufen. Häufig werden diese Interaktionen als direkte Antwort auf eine Kundenanforderung durchgeführt, was bedeutet, dass die nachgelagerte Anforderung möglicherweise auf den Abschluss dieser Übertragung wartet. Im Allgemeinen können die Anfragen selbst recht klein sein, in der Größenordnung von ein paar Kilobyte. Die Antworten können sehr unterschiedlich groß sein, von Kilobyte bis zu vielen Megabyte.

Abb. 1: Der Anforderungsfluss sendet kleine (Order KBs) Anforderungen und empfängt potenziell große Antworten (potenziell Megabyte).

Um den Zustand der Verbindungen zwischen Points of Presence zu überwachen, können wir unser Socket Monitoring Tool xTCP verwenden, um den aktuellen Zustand aller offenen Sockets auf unseren Edge-Servern abzufragen. Diese Socket-Daten ermöglichen zwar einen kritischen Einblick in unsere kundenseitigen Sockets, bieten uns aber auch einen Überblick über die Daten zwischen POPs.

Die Messung dieser Daten ist jedoch nicht ohne einige Herausforderungen. Erstens bietet xTCP ein Point-in-Time-Beispiel verschiedener Verbindungen. Das bedeutet, dass wir viele Verbindungen an vielen verschiedenen Stellen des Getriebes erkennen können. Daher müssen wir bei jeder Bewertung die breitere Verteilung der Verhaltensweisen berücksichtigen und nicht einzelne Werte.

Als Nächstes müssen wir sicherstellen, dass wir die richtige Richtung verfolgen. Während sowohl der POP, der die Anforderung generiert hat (POP A im obigen Diagramm) als auch der POP, der die Anforderung empfangen hat und darauf antworten muss (POP B oben), Socket-Informationen haben, erwarten wir aufgrund ihrer asymmetrischen Workloads ein anderes Verhalten: Die Mehrheit der vom Client gesendeten Pakete sind Kontrollpakete (die ursprüngliche Anforderung, nachfolgende Bestätigungspakete), während die Mehrheit der vom Server gesendeten Pakete Datenpakete sind, die mit größerer Wahrscheinlichkeit aussagekräftige Datenmengen enthalten.

Wenn es zu einer Überlastung oder anderen Problemen entlang des Pfades kommt, sind Pakete, die Daten übertragen und somit mehr Platz in der Warteschlange belegen, wahrscheinlicher, dass Pakete verloren gehen und erneut übertragen werden, z. B. weil die Warteschlange auf einem ausgelasteten Router unterbrochen wird. Um dies zu demonstrieren, betrachten wir die Verteilung der erneuten Übertragung von Paketen (berechnet als Verhältnis der Gesamtzahl der erneut übertragenen Pakete geteilt durch die Gesamtzahl der gesendeten Datensegmente, weniger erneute Übertragungen), die im Anforderungs- und Antwortfluss zwischen einem Paar von POPs über einen Zeitraum von 10 Minuten beobachtet wird.

Abb. 2: Der Antwortverkehr findet aufgrund seiner größeren Größe mehr Weiterübertragungen statt.

Hier sehen wir, dass die Client Request Sockets in diesem Zeitraum fast keine erneuten Übertragungen erfahren. Auf der anderen Seite zeigen die Antworten, dass fast 85 % der Sockets eine erneute Übertragung ungleich Null aufweisen. Wir stellen jedoch fest, dass die erneute Übertragungsrate bei der überwiegenden Mehrheit der Verbindungen deutlich unter 1 % liegt. Es überrascht nicht, dass wir während des Testzeitraums ein ähnliches Verhalten bei fast jedem POP-Paar mit nicht-Null-Wiederholungsübertragungen beobachten. Daher konzentrieren wir uns auf die datenreichen Reaktionsströme. Da es uns darum geht, die Anfragen an die ursprünglichen anfragenden POPs zu richten, bezeichnen wir diese als „eingehende“ Ströme.

Unsere letzte Herausforderung liegt in einigen allgemeinen Komplexitäten im Zusammenhang mit der Weiterübertragung und der Schwierigkeit, sie als Signal für eine Leistungsminderung zu verwenden. Tatsächlich können regelmäßig erneute Übertragungen erfolgen, ohne dass ein bestimmtes Problem angezeigt wird, da sie lediglich den Status des Absenders und die Anzahl der erneuten Versendungen eines Pakets widerspiegeln. Diese können letztlich das Ergebnis eines anderen komplexen Protokollverhaltens neben dem Verlust sein (z. B. Schwanzverlust-Sondierung). Zusätzlich zur Komplexität stellen wir fest, dass viele Sockets nie eine erneute Übertragung beobachten. Das bedeutet, dass naive Zusammenfassungen (z. B. der Median) zu sehr konservativen Zusammenfassungen der Wiederholungsrate führen können, und verzerrte Zusammenfassungen (z. B. 95. Oder 99. Perzentil) können ein Verhalten erfassen, das für die Bevölkerung im Allgemeinen nicht schädlich ist.

Relevanz Für Erneute Übertragung

Um die Auswirkungen dieser Herausforderungen zu vereinfachen, betrachten wir eine zusammengesetzte Metrik, die wir das Wiederholungsverhältnis nennen. Inspiriert von Metas HD Ratio, das darauf abzielt, den Anteil der Kunden zu quantifizieren, die HD-Video streamen können, versucht diese Messung, den Anteil der Sockets zu beschreiben, die eine ungesunde Menge an Retransmitts erfahren. Da manchmal Wiederholungsübertragungen ungleich Null erwartet werden, definieren wir das Wiederholungsübertragungsverhältnis wie folgt:

Kritisch ist, dass dieser Wert mit Daten, die über xTCP zur Verfügung gestellt werden, besonders einfach zu berechnen ist. Nach unserer betrieblichen Erfahrung haben wir festgestellt, dass die Werte für das Wiederholungsverhältnis bei gesunden Verbindungen in der Regel klein sind, während die fast immer Null-Herausforderungen bei der Messung der Rohresenderate vermieden werden.

Wir haben auch festgestellt, dass die Messung sensibel ist und oft Warnungen vor anderen Leistungsüberwachungssystemen generiert. Dies macht es besonders nützlich, wenn Sie schnell Netzwerkbeeinträchtigungen diagnostizieren, die oft mit kleinen Problemen beginnen, die sich schließlich in größere Probleme überlagern.

Metrik wird validiert

Um zu demonstrieren, dass das Wiederholungsverhältnis direkt mit der Anwendungsleistung korreliert, zeigen wir seine Wirksamkeit anhand von zwei Messungen. Erstens zeigen wir, dass die Clientanwendung (der Anforderer) in Zeiten mit hohem Wiederholungsverhältnis einen geringeren Durchsatz aufweist als in Zeiten mit niedrigem oder null Wiederholungsverhältnis. Zweitens zeigen wir, dass ein hohes Wiederholungsverhältnis häufig mit Verschlechterungen in anderen Netzwerksignalen übereinstimmt, insbesondere ICMP-Sonden zwischen POPs.

Um die Auswirkungen auf die Anwendungsleistung zu untersuchen, wenden wir uns an Messungen, die explizit von der Anwendungsebene vorgenommen wurden. Insbesondere berücksichtigen wir die am Client POP gemessenen Durchsätze, da diese die funktionale Übertragungsrate darstellen, die beim Datensendeprozess erreicht wurde. Um die Auswirkungen von Ereignissen zur erneuten Übertragung zu verstehen, haben wir die folgende Studie über ein Paar von POPs im Verlauf einer Woche durchgeführt, in der ein erhebliches Problem mit dem Anbieter aufgetreten ist.

Zunächst betrachten wir alle Perioden, in denen ein erneutes Senden aufgetreten ist. Wir definieren ein erneutes Übertragungsereignis als jeden Zeitraum, in dem das Wiederholungsverhältnis zwischen einem Paar von Pop mindestens zehn aufeinanderfolgenden Minuten innerhalb eines bestimmten Bereichs liegt. Obwohl wir feststellen, dass dies kurzlebige Ereignisse ausschließt, bietet es Einblicke in das Verhalten längerer Ereignisse. Für jedes erneute Übertragungsereignis erfassen wir dann die entsprechenden Durchsatzwerte während des Ereignisses. Als Kontrolle erfassen wir Daten für die gleiche Dauer wie das Ereignis, jedoch drei Stunden vorher. Dies gibt uns zwei Sätze von Durchsatzmessungen: Die „während“ der erneuten Übertragung von Ereignissen und „normal“, die während Zeiten ohne erneute Übertragung erfasst werden. Wir normalisieren dann die „während“-Messungen durch den mittleren Durchsatz, der zwischen den POPs während der normalen Zeit erreicht wird. Für unsere Schwellenwerte betrachten wir vier Bereiche: Mehr als 0, aber weniger als 25 %, mehr als 25, aber weniger als 50 %, mehr als 50, aber weniger als 75 % und schließlich mehr als 75 %.

Abb. 3: Relativer Durchsatz im Vergleich zu nicht-erneuten Übertragungsperioden, beobachtet bei jedem erneuten Übertragungsereignis.

Die obige Abbildung zeigt die Verteilung der relativen Durchsätze, die während des Messzeitraums beobachtet wurden. Erstens sehen wir, dass selbst im niedrigsten Bereich 60 % der Transaktionen einen niedrigeren Durchsatz als der Median erzielten. Wenn wir höhere Wiederholungsverhältnisse betrachten, sinkt der Durchsatz weiter, wobei ein höheres Wiederholungsverhältnis einem niedrigeren Durchsatz entspricht und im schlimmsten Fall zu einer relativen mittleren Abnahme von über einer Größenordnung führt. Diese Messungen machen deutlich, dass das Wiederholungsverhältnis die schlechte Leistung der betroffenen Flüsse erfolgreich erfasst.

Als Nächstes befassen wir uns damit, wie diese Ereignisse mit unseren aktiven ICMP-Messungen zwischen POPs korrelieren. Hier betrachten wir das Verhalten einiger unserer aktiven Überwachung, die regelmäßige ICMP-Untersuchungen zwischen POPs durchführt, um auf Verluste oder Änderungen in Verzögerungsmustern zu messen. Für diese Analyse verwenden wir erneut die Ereignisse, die aus unserem Durchsatzvergleich extrahiert wurden. Dieses Mal betrachten wir jedoch den ICMP gemessenen Verlust für Zeiträume jedes Schwellenwerts, wobei normal in diesem Fall kein Verlust beobachtet wurde. Wir stellen fest, dass Einschränkungen bei der ICMP-Sondierung zu einer Verlustgranularität von 2 % für diese speziellen Messungen führen.

Abb. 4: Der beobachtete ICMP-Verlust in jedem Zeitraum. Ein größeres Wiederholungsverhältnis entspricht einem höheren Verlust.

Hier sehen wir, dass die unteren Schwellenwerte selten einen Verlust aufweisen, wobei 90 % der Messungen keinen erkennen. Im Gegensatz dazu beobachteten 80 % der Messungen bei der Schwelle von .75 einen Verlust und einen relativ hohen mittleren Verlust von 4 %. Kritisch ist, dass Stufen, bei denen das Wiederholungsverhältnis mit signifikanten Auswirkungen auf den Durchsatz korrespondierte (z. B. 0,25), zu geringen Verlusten bei den ICMP-Metriken führen. Diese Ergebnisse zeigen erneut, wie wichtig es ist, die Pfadleistung über einfache ICMP-Sonden hinaus zu messen, und heben die Fähigkeit des Wiederholungsübertragungsverhältnisses hervor, einen detaillierten Überblick über die Leistung der tatsächlichen Ströme im Internet zu bieten.

Schlussfolgerungen und darüber hinaus

In diesem Beitrag haben wir den Wert der Relevanz für die erneute Übertragung demonstriert, eine praktische zusammenfassende Metrik, die problemlos mit Daten berechnet werden kann, die auch aus den xTCP-Socket-Daten verfügbar sind. Außerdem haben wir gezeigt, dass es klare Einblicke in Fälle bietet, in denen die Anwendungsleistung beeinträchtigt wird und Netzwerkeingriffe erforderlich sind.

Das Wiederholungsverhältnis ist zu einem wichtigen Bestandteil unseres Überwachungsprozesses geworden, da es klare Einblicke in die Systemleistung bietet, ohne dass größere und unkompliziertere Anwendungsprotokolle verarbeitet werden müssen oder ICMP-Sonden verwendet werden müssen, die einige Auswirkungen nicht erfassen.

Unsere laufende Arbeit untersucht, wie die Metrik so sensibel wie möglich gestaltet werden kann, um frühzeitig vor Verschlechterungen zu warnen und gleichzeitig einen geeigneten Input für komplexere Automatisierungssysteme zu liefern.

Ein besonderer Dank gilt den Teams für Architektur und Netzwerkzuverlässigkeit, die diese Arbeit unterstützen!

Forscher, die mehr über Edgio Labs & Advanced Projects erfahren möchten oder an gemeinsamen Arbeiten zu einem der oben beschriebenen Themen interessiert sind, wenden sich bitte an das Team unter research@edg.io.