Vorhersage von Netzwerkstaus durch intelligente Telemetrie
Von reaktiv zu prädiktiv: Vorhersage von Netzwerkverstopfungen mit maschinellem Lernen und INT In Rechenzentren können Netzwerkverzögerungen plötzlich auftreten. Ein unerwarteter Anstieg des Datenverkehrs aus verteilter Systemarchitektur, Mikroservices oder AI-Trainingsjobs kann die Schaltkreispuffer innerhalb von Sekunden überlasten. Das Problem besteht nicht nur darin zu erkennen, wann etwas schief geht, sondern auch, es vorherzusehen, bevor es passiert. Telemetriesysteme werden häufig verwendet, um das Netzwerk zu überwachen, aber die meisten arbeiten im reaktiven Modus. Sie melden erst dann Verstopfungen, wenn die Leistung bereits abgefallen ist. Sobald eine Verbindung gesättigt ist oder eine Warteschlange voll, liegt der kritische Zeitpunkt für eine frühe Diagnose bereits hinter einem, und die Rückverfolgung der Ursache wird erheblich schwieriger. In-Band Network Telemetry (INT) versucht diese Lücke zu schließen, indem lebende Pakete mit Metadaten versehen werden, während sie durch das Netzwerk fließen. Dies bietet einen Echtzeitblick darauf, wie der Datenverkehr verläuft, wo Warteschlangen anwachsen, wo Latenzzeiten zunehmen und wie jeder Schalter den Datenverkehr weiterleitet. Es ist ein mächtiges Werkzeug, wenn es vorsichtig eingesetzt wird. Allerdings hat es auch Nachteile. Die Aktivierung von INT für jedes Paket kann erhebliche Overhead-Kosten verursachen und den Kontrollplan mit einer Flut an Telemetriedaten überschwemmen, die man möglicherweise gar nicht benötigt. Das Problem des ständig aktiven Telemetrisystems INT gibt einen detaillierten Einblick in das, was im Netzwerk passiert. Man kann Warteschlangenlängen, Latenzzeiten von Hop zu Hop und Zeitstempel direkt aus dem Paketpfad ablesen. Der Nachteil hierbei ist, dass diese Telemetriedaten das Gewicht jedes Pakets erhöhen und, wenn sie auf den gesamten Datenverkehr angewendet werden, erhebliche Bandbreite und Prozessleistung beanspruchen. Um dieses Problem zu umgehen, nehmen viele Systeme Abkürzungen: Stichprobenverfahren: Nur einen Bruchteil (z.B. 1%) der Pakete mit Telemetriedaten markieren. Ereignisgesteuerte Telemetrie: INT erst aktivieren, wenn bereits etwas Schlimmes passiert, wie z.B. eine Warteschlange einen Schwellenwert überschreitet. Diese Methoden helfen zwar, den Overhead zu kontrollieren, aber sie verpassen die kritischen ersten Momente eines Datenverkehrsanstiegs, die am wichtigsten sind, um Verzögerungen zu verhindern. Einführung eines prädiktiven Ansatzes Anstatt auf Symptome zu reagieren, haben wir ein System entwickelt, das Verstopfungen vorhersagen und gezielt detaillierte Telemetrie aktivieren kann. Das Konzept ist einfach: Wenn wir vorhersagen können, wann und wo der Datenverkehr ansteigen wird, können wir INT gezielt für diese Hotspots und nur für den relevanten Zeitraum aktivieren. Dies hält den Overhead niedrig, aber gibt tiefere Sichtbarkeit genau dann, wenn sie erforderlich ist. Systemdesign Wir haben einen einfachen Ansatz entwickelt, der das Netzwerkmonitoring intelligenter macht. Es kann vorhersagen, wann und wo Überwachung tatsächlich benötigt wird. Das Ziel ist es, die Telemetrie nicht für jeden einzelnen Datenverkehrspaket zu aktivieren und nicht abzuwarten, bis Verstopfungen auftreten. Stattdessen soll das System frühzeitig Anzeichen von Problemen erkennen und gezielt eine hochauflösende Überwachung aktivieren, wenn es erforderlich ist. Hier sind die vier wesentlichen Komponenten unseres Systems, jeweils für eine spezifische Aufgabe: Daten-Sammler Wir fangen an, Netzwerkdaten zu sammeln, um zu überwachen, wie viel Daten durch verschiedene Netzwerkports fließen. Dafür verwenden wir sFlow, da es wichtige Metriken ohne Einfluss auf die Netzwerkperformance sammelt. Diese Metriken werden in regelmäßigen Intervallen erfasst, um eine Echtzeitansicht des Netzwerks zu erhalten. Vorhersage-Engine Die Vorhersage-Engine ist die wichtigste Komponente unseres Systems. Sie wurde mit einem Long Short-Term Memory (LSTM)-Modell entwickelt. Wir haben uns für LSTM entschieden, weil es in der Lage ist, Muster im Laufe der Zeit zu lernen, was es für den Netzwerkverkehr geeignet macht. Unser Hauptziel ist es, ungewöhnliche Verkehrsanstiege zu identifizieren, die typischerweise vor einer Verstopfung auftreten. Absolute Genauigkeit ist hier nicht notwendig; es reicht, wenn das Modell erkennen kann, wann etwas Ungewöhnliches bevorsteht. Telemetrie-Controller Der Controller reagiert auf diese Vorhersagen und trifft Entscheidungen. Wenn ein vorhergesagter Anstieg den Warnschwellenwert überschreitet, sendet das System einen Befehl an die Schalter, um die detaillierte Überwachungsmodus für bestimmte Flüsse oder Ports zu aktivieren. Er weiß auch, wann er zurückstecken sollte, indem er die zusätzliche Telemetrie abschaltet, sobald die Bedingungen wieder normal sind. Programmierbare Datenebene Die letzte Komponente ist der Schalter selbst. In unserer Setup verwenden wir P4-programmierbare BMv2-Schalter, die es ermöglichen, das Paketverhalten dynamisch anzupassen. In den meisten Fällen leiten die Schalter den Datenverkehr ohne Änderungen weiter. Sobald der Controller jedoch INT aktiviert, beginnen die Schalter, Telemetriedaten in die Pakete einzubetten, die bestimmten Regeln entsprechen. Diese Regeln werden vom Controller übermittelt und ermöglichen es, sich nur auf den relevanten Datenverkehr zu konzentrieren. Dadurch wird der Kompromiss zwischen ständiger Überwachung und blindem Stichprobenverfahren vermieden. Stattdessen erhalten wir genaue Sichtbarkeit genau dann, wenn sie erforderlich ist, ohne das System mit unnötigen Daten zu überschwemmen. Experimentelle Einrichtung Unsere Simulation des Systems wurde mit folgenden Komponenten aufgebaut: Mininet: Synthetische Verkehrsspuren wurden mit iperf generiert, um das LSTM-Modell zu trainieren. P4-Programmierbare BMv2-Schalter: Diese Schalter ermöglichen es, das Paketverhalten dynamisch zu ändern. sFlow: Wird für die Datenkollektion verwendet, um wichtige Metriken ohne Einfluss auf die Netzwerkperformance zu erfassen. Das LSTM-Modell wurde mit synthetischen Verkehrsspuren trainiert, die in Mininet mit iperf generiert wurden. Sobald das Modell trainiert war, lief es in einer Schleife und machte alle 30 Sekunden Vorhersagen, die vom Controller ausgewertet wurden. Hier ist eine vereinfachte Version der Vorhersageschleife: Jede Minute: - aktuelle_daten = datensammler.aktueller_verkehr() - rutschendes_fenster += aktuelle_daten - Wenn rutschendes_fenstergröße >= fenstergröße: - vorhersage = vorhersage_engine.vorhersage_kommender_verkehr() - Wenn vorhersage > warnschwellenwert: - telem_controller.int_aktivieren() Die Schalter reagieren sofort, indem sie die Telemetrie-Modi für spezifische Flüsse ändern. Warum LSTM? Wir haben uns für ein LSTM-Modell entschieden, weil der Netzwerkverkehr Struktur hat. Er ist nicht völlig zufällig. Es gibt Muster, die mit der Tageszeit, dem Hintergrundlast oder Batch-Verarbeitungsaufträgen zusammenhängen, und LSTMs sind besonders gut darin, diese zeitlichen Beziehungen zu erkennen. Im Gegensatz zu einfacheren Modellen, die jeden Datenpunkt unabhängig voneinander betrachten, kann ein LSTM die vergangenen Daten im Gedächtnis behalten und diese zum besseren kurzfristigen Voraussagen nutzen. Für unseren Anwendungszweck bedeutet dies, frühzeitig Anzeichen eines bevorstehenden Anstiegs zu erkennen, indem es sich auf das Verhalten der letzten Minuten konzentriert. Wir brauchten nicht perfekte Vorhersagen, sondern nur eine Warnung, wenn etwas Ungewöhnliches bevorsteht. Das LSTM-Modell gab uns genug Genauigkeit, um gezielte Telemetrie proaktiv zu aktivieren, ohne sich an das Rauschen anzupassen. Auswertung Wir haben keine großen Leistungsbenchmarks durchgeführt, aber durch unser Prototypen-System und das Verhalten unter Testbedingungen können wir die praktischen Vorteile dieses Designs umreißen. Frühwarnvorteil Ein wesentlicher Vorteil eines prädiktiven Systems wie diesem ist die Fähigkeit, Probleme frühzeitig zu erkennen. Reaktive Telemetriesysteme warten normalerweise, bis eine Warteschlange einen Schwellenwert überschreitet oder die Leistung abfällt, was bedeutet, dass man bereits hinter dem Zeitpunkt der ersten Diagnose liegt. Unser System hingegen erkennt Verstopfungen auf Basis von Verkehrsströmungen und aktiviert die detaillierte Überwachung im Voraus. Dadurch haben Betreiber eine klarere Vorstellung davon, was zu dem Problem geführt hat, und nicht nur die Symptome, sobald sie sichtbar werden. Überwachungseffizienz Ein wichtiges Ziel dieses Projekts war es, den Overhead gering zu halten, ohne die Sichtbarkeit zu beeinträchtigen. Anstatt full INT auf den gesamten Datenverkehr anzuwenden oder grobkörnige Stichproben zu verwenden, aktiviert unser System gezielt hochauflösende Telemetrie für kurze Phasen, und nur an Stellen, wo Vorhersagen potenzielle Probleme andeuten. Obwohl wir die genauen Kostenersparnisse nicht quantifiziert haben, begrenzt das Design natürlicherweise den Overhead, indem es INT fokussiert und kurzlebig einsetzt, was statische Stichproben oder reaktive Triggerung nicht leisten können. Industrieinsider bewerten das System positiv. Sie sehen darin einen wichtigen Schritt hin zu einer effizienteren und präziseren Netzwerküberwachung. Unternehmen wie Google und Microsoft arbeiten bereits an ähnlichen Ansätzen, um die Netzwerkperformance zu verbessern und Kosteneinsparungen zu erzielen. Das System potenziert die Möglichkeiten der Telemetrie, indem es sie intelligent und gezielt einsetzt, was sowohl für kleine als auch für große Netzwerke von Vorteil sein könnte.