In unserem CDN entwickeln wir kontinuierlich neue und innovative Wege, um unsere Infrastruktur bei plötzlichen Lastanstiegen zu unterstützen, hohe Leistung und Ausfallsicherheit aufrechtzuerhalten. Dabei geht es oft darum, Optimierungen für vorhandene Techniken zu untersuchen, die wir verwenden. Darüber hinaus ist die Validierung neuer Ansätze ein wichtiger Teil dieses Prozesses, da sie gewährleistet, dass neue Änderungen die erwarteten positiven Auswirkungen auf die Produktionsumgebung haben.
Wenn Inhalte populär werden, replizieren wir sie auf mehreren Servern in einem Rechenzentrum/Point of Presence (POP). Dies ermöglicht uns einen besseren Lastausgleich und die Bewältigung solcher Überspannungen, wodurch das Risiko einer Serverüberlastung verringert wird. Dieser Replikationsmechanismus wird als „Hot Filing“ bezeichnet, und der beliebte Inhalt wird als „Hot File“ bezeichnet. Wir haben vor kurzem eine adaptive Load Balancing (ALB)-Optimierung entwickelt, die unsere herkömmliche Hot Filing verbessert, indem es widerstandsfähiger gegenüber Überlastungen macht. Insbesondere wird dynamisch die erforderliche Replikationsmenge bestimmt, indem die Serverlast gemessen wird, anstatt sich auf statische Schwellenwerte zu verlassen. Dadurch wird die Last gleichmäßig auf alle Server in einem POP verteilt, wodurch sich die Gesamtkapazität für die Anforderungsbearbeitung jedes POP und damit des CDN erhöht. In unserem vorherigen artikel über die Evaluierung eines adaptiven Lastausgleichsystems werden die Mechanik dieser Optimierung erläutert.
In diesem Beitrag validieren wir die positiven Auswirkungen dieser Optimierung auf die Produktion. Wir beginnen mit der Definition der Kennzahlen, die wir zur Messung der Auswirkungen verwendet haben. Als Nächstes zeigen wir die Auswirkungen der Optimierung auf jede dieser Kennzahlen anhand von Beispielen. Schließlich zeigen wir die aggregierten Auswirkungen der Optimierung auf alle POPs, in denen diese bereitgestellt wurde. Zusammenfassend haben wir festgestellt, dass die Gesamtzeit, in der Server eine übermäßige Auslastung über einen vordefinierten Schwellenwert hinaus verzeichnen konnten, um mindestens 70 % reduziert wurde, während fast alle POPs eine Verbesserung dieser Kennzahl verzeichnen konnten. Diese Optimierung ist jetzt global für den gesamten Kundenverkehr aktiviert.
Definieren der Metriken
Um die Auswirkungen dieser neuen Optimierung in der Produktion zu bewerten, haben wir drei Kennzahlen definiert und überwacht:
- Serverschiefheit: Dies ist das Verhältnis der Auslastung eines Servers zur mittleren Auslastung aller Server im POP.
- Anzahl der Hot Files: Dies ist die Anzahl der Dateien, die vom Hot Filing-Mechanismus zu einem bestimmten Zeitpunkt repliziert werden. Es wird erwartet, dass der adaptive Load Balancing die Anzahl der Hot Files erhöht, da Hot Filling der zugrunde liegende Mechanismus für die Lastverteilung ist.
- Zeitaufwand, den Server über Zielschiefheit aufwenden: Diese Metrik bewertet die Effektivität von Adaptive Load Balancing. Wenn wir den Schwellenwert für die Schiefheit des Ziels auf einen bestimmten Wert festlegen, möchten wir sehen, dass die Schiefheit der meisten Server normalerweise kleiner ist als dieser Wert.
Auswirkung der Optimierung auf überwachte Metriken
ZIELSCHIEFHEIT ERREICHEN
Die folgende Abbildung zeigt zwei Snapshots der Lastverteilung von Servern in einem POP. Auf der linken Seite (ohne Adaptive Load Balancing) sehen wir eine Reihe von Servern, die das Schiefheitsziel (rotes Kästchen) mit einer Last von mehr als dem 1,8-fachen des Medians des Pop überschreiten. Auf der rechten Seite (mit Adaptive Load Balancing) sehen wir eine größere Ausgewogenheit zwischen den Servern, wobei keine Server mehr als das 1,8-fache des Medians ausgeben.
Änderung der Lastverteilung mit adaptivem Lastausgleich. Wir bemerken eine Verringerung der überlasteten Server.
ANZAHL DER HOT FILES UND LASTVERTEILUNG
Als Nächstes haben wir untersucht, wie die Anzahl der Hot Files beeinflusst wurde und welche Änderungen an der Auslastung auf jedem Server vorgenommen wurden. Die folgende Darstellung zeigt, dass die Anzahl der Hot Files zugenommen hat, wenn ALB in einem POP aktiviert wurde. Dieses Verhalten wurde erwartet, da der Mechanismus selektiv die Wahrscheinlichkeit erhöht, dass Dateien von Servern mit einer höheren Last abgeladen werden.
Im Grunde reduzieren Hot Filing und ALB die Belastung einzelner Server, indem die Anzahl der Server erhöht wird, die bestimmte Dateien bedienen. Dadurch wird die Speicherauslastung auf jedem Server erhöht. Die zusätzlichen Dateien, die zu einem beliebigen Zeitpunkt repliziert werden sollen, sind jedoch relativ niedrig im Vergleich zur Gesamtanzahl der Dateien, die vom POP bereitgestellt werden, da sie nur von ausreißenden Servern ausgewählt werden, die eine Entladung erfordern. In den meisten Fällen ist der zusätzliche belegte Cache-Speicherplatz im Vergleich zum gesamten Festplattenspeicher sehr klein. Daher lohnt sich der Kompromiss, aber es ist wichtig, ihn zu identifizieren und zu erkennen. In unserer Implementierung haben wir Integritätsprüfungen aufgenommen, um zu überprüfen, ob die Cache-Nutzung durch diese Optimierung nicht negativ beeinflusst wird.
Anzahl der Hot Files. Die Anzahl wird erhöht, wenn Adaptive Load Balancing aktiviert ist (rote Markierung), da Ausreißer-Server verlagert werden sollen.
Die zweite Darstellung zeigt das Datenverkehrsvolumen, das von jedem Server im selben Zeitrahmen an diesem POP bereitgestellt wird. Wir haben beobachtet, dass die Last über die Server ausgeglichen wurde, als Adaptive Load Balancing aktiviert wurde (gestrichelte rote Linie). Dies machte die Server widerstandsfähiger gegenüber eingehendem Datenverkehr und verringerte das Risiko einer Serverüberlastung.
Lastverteilung (Mbit/s) in einem POP zwischen dem 02.05.04. Wenn Adaptive Load Balancing aktiviert ist, wird die Verteilung reibungsloser, da mehr Server den Datenverkehr näher am Median bereitstellen. Dies trägt dazu bei, das Risiko einer Überlastung der Server durch neuen Datenverkehr zu verringern.
ZEIT, DIE ÜBER ZIELNEIGUNG VERBRACHT WURDE
Hier haben wir ein Experiment in Betracht gezogen, bei dem ein Pop eine Zielschiefheit von 1,6x beibehalten sollte. In der folgenden Abbildung zeigt die orangefarbene Linie die Verteilung der „Server-Schiefheit“ über den Versuchszeitraum. Beim Vergleich dieser Verteilung mit der blauen Linie, der jeweiligen Verteilung für den Basisperiode (kein adaptiver Lastausgleich), wurde eine Lastverschiebung zum Median festgestellt. Insbesondere wurde auch der „Schwanz“ der Verteilung deutlich reduziert, wobei das 99. Perzentil von 2,12 auf 1,52 fiel und somit unter die Zielschiefheit fiel.
Adaptive Load Balancing verringert die maximale Serverlast und bringt die Serverlasten näher an den Median.
Das Hauptziel der Optimierung ist die Reduzierung dieses „Tail“ in der Distribution, da Server in diesem Tail, d. h. die mit der höchsten Auslastung, ein höheres Risiko laufen, durch neue Datenverkehrsspitzen überlastet zu werden. Um diese Reduzierung weiter zu quantifizieren, haben wir auch die Anzahl der Minuten gemessen, in denen ein Server während der Experimentierperioden mit/ohne Adaptive Load Balancing Datenverkehr über das Ziel bereitgestellt hat:
Adaptive Load Balancing reduziert die Zeit, die Server für die Bereitstellung einer Last über einen Zielschwellenwert aufwenden.
In diesem Fall konnten wir eine 88%ige Reduzierung der Zeit beobachten, die im Vergleich zu den Zielschiefen in diesem Pop aufgewendet wurde. Dies ist ein guter Indikator dafür, dass Adaptive Load Balancing die Schiefheit der Lastverteilung um den gewünschten Wert beibehalten kann.
Ergebnisse der globalen Bereitstellung
Nachdem wir die Optimierung an einer Handvoll ausgewählter Pops getestet und gute Ergebnisse bei den gemessenen Metriken erzielt hatten, implementierten wir das System für jeden POP, um die aggregierten Auswirkungen über die Zeit zu quantifizieren. Wie zuvor haben wir die Anzahl der kollektiven Minuten gemessen, die Server in einem POP ausgegeben haben, um Datenverkehr über der angegebenen Zielschiefheit zu liefern (auf 1,8 x mittlere Serverlast in einem POP festgelegt). Die nächste Darstellung zeigt zwei Verteilungen von Minuten, die Server über diesem Schwellenwert für 75 Pops verbracht haben. Die blaue Linie entspricht 4 Tagen Basisdaten und die orangefarbene Linie entspricht 4 Tagen Adaptive Load Balancing Daten. Die Gesamtverschiebung der Verteilung nach links zeigt, dass Server in den POPs, die Adaptive Load Balancing ausführen, weniger Minuten über dem Schwellenwert verbracht haben.
Aggregierte Minuten, die von Servern verbracht werden, die eine Last über dem angegebenen Schwellenwert (1,8 * Median) über 4 Tage für alle POPs bereitstellen. Mit Adaptive Load Balancing wird die Verteilung nach links verschoben, was zeigt, dass der Mechanismus die Serverlasten länger unter der Zielabweichung vom Median hält.
Um die Auswirkungen auf einzelne Pops besser zu verstehen, haben wir auch die prozentuale Änderung für diese Kennzahl für jeden Pops erfasst. Die Ergebnisse zeigten, dass die Hälfte der Pops eine Verringerung der Gesamtzeit-Server um 70 bis 95 % über dem Zielwert lag, und fast alle Pops eine Verringerung der Zeit über dem Schwellenwert verzeichneten.
Im Rahmen unserer kontinuierlichen Bemühungen, die Leistung und Zuverlässigkeit unseres CDN kontinuierlich zu verbessern, haben wir kürzlich eine Optimierung der Lastverteilung innerhalb eines POP implementiert und evaluiert. Diese Optimierung identifiziert Server, die über einen bestimmten Schwellenwert geladen wurden, im Vergleich zum Rest des POP und entlastet diese Server, was insbesondere das Risiko von Performanceeinbußen bei neuen Datenverkehrsspitzen minimiert. Die Ergebnisse aus der Produktion zeigen deutliche Verbesserungen, die mit früheren Simulationsergebnissen konsistent waren, um die Effizienz der Optimierung bei der Aufrechterhaltung der Verteilung der Serverlast innerhalb der gewünschten Schieflage zu zeigen. Daher haben wir diese Optimierung nun global für den gesamten Kundenverkehr aktiviert.
Ein besonderer Dank gilt Angela Chen für die Arbeit an der Umsetzung und Einführung dieses Mechanismus. Vielen Dank auch an Scott Yeager, Derek Shiell, Marcel Flores, Anant Shah und Reed Morrison für die Unterstützung bei den allgemeinen Diskussionen, Colin Rasor, Richard Rymer und Olexandr Rybak für die Unterstützung bei der Datenerfassung und -Visualisierung.