Fachartikel

Lastverteilung bei InnoGames

InnoGames ist ein deutscher Entwickler von Mobile- und Onlinespielen und für "Forge of Empires", "Elvenar" und "Die Stämme" bekannt. 6500 virtuellen Maschinen laufen auf 350 Hypervisoren und sind auf drei Rechenzentren verteilt, in Spitzenzeiten fallen 1,8 Millionen Anfragen pro Stunde an. Dies erfordert rund um die Uhr Überblick über die Verteilung und Nutzung systemkritischer Ressourcen. Der Anwenderbericht stellt anhand realer Projektbeispiele einen Ansatz vor, um Lastverteilung zu optimieren und Steal Time in überlasteten Hypervisoren proaktiv und durch Automatisierung zu vermeiden.
Dass die Schornsteine der Hypervisoren nicht allzusehr rauchen, bewirkt bei InnoGames ein eigener Algorithmus zur Lastverteilung.
Als Hobby gestartet, beschäftigt InnoGames heute mehr als 400 Mitarbeiter aus über 30 Nationen. Das gesamte Portfolio umfasst sieben Live-Spiele und mehrere Mobile-Games. Um Millionen von täglichen Zugriffen auf die eigenen Server zu handhaben, braucht es stabile Systeme. Es ist wichtig, sich zu jeder Zeit einen Überblick über die Verteilung und Nutzung von systemkritischen Ressourcen verschaffen zu können, um dadurch mögliche Engpässe zu vermeiden.

Der Beginn des Anwenderberichts stellt die IT-Umgebung von InnoGames vor. Der zweite Abschnitt beschreibt den Lastverteilungs-Algorithmus, der durch inkrementelle Verbesserung das Problem von schlecht verteilten Ressourcen lösen soll.

Hypervisoren an der Belastungsgrenze
6500 virtuelle Maschinen laufen auf 350 Hypervisoren und sind über drei Rechenzentren auf der Welt verteilt. Zu Peak-Zeiten verzeichnen die Server 1,8 Millionen Anfragen pro Stunde. Ziel ist es, diese Last kann durch proaktives Umverteilen der virtuellen Maschinen gleichmäßig über die Hardware zu verteilen. Im Idealfall lassen sich täglich auftretende Schwankungen und der Einfluss von plötzlich auftretenden Ereignissen somit minimieren und ein flüssiges Spielerlebnis gewährleisten.

Jedes der Spiele hat ein unterschiedliches Auslastungsprofil. Die generelle Spitzenlast tritt täglich um 20 Uhr auf, jedoch erzeugen spezielle Events in den Spielen selbst deutlich mehr Last. Diese Events variieren zwischen den Spielen und starten zu unterschiedlichen Zeiten an unterschiedlichen Wochentagen. Hinzu kommt, dass durch regelmäßige Wartungsarbeiten an den Servern ein Teil der Hypervisoren evakuiert wird. Dabei ziehen virtuelle Maschinen auf Basis von speziellen Kriterien auf andere Hypervisoren um. Die von der IT-Abteilung genutzten Tools stellten allerdings kein Feature für die optimale Verteilung bereit.

In der beschriebenen Umgebung kam es dann in der Vergangenheit nicht selten dazu, dass einige Hypervisoren an ihre Auslastungsgrenzen stießen. Da sich die CPU-Performance durch starke Nutzung durch die Hypervisoren bei aktiviertem Hyperthreading bereits vor der maximalen Auslastung zu verschlechtern beginnt, ist es besonders wichtig, Überlastungen zu vermeiden. Zu den größten Performance-Einbußen bei den Spielen kommt es dadurch, dass virtuellen Maschinen nicht die eigentlich benötigte CPU-Zeit auf ihrem Host bekommen (Steal Time). Je näher der Hardware-Server an seine CPU-Grenzen stößt, desto ausgeprägter zeigt sich diese Stealtime. Aus diesem Grund ist es wichtig, die Auslastung der Hypervisoren ständig zu überwachen und zu optimieren.
Graphite verschafft Überblick
Die größte Herausforderung bei der Lösung des beschriebenen Problems war es zunächst, sich eine Übersicht darüber zu verschaffen, wie die Verteilung der Ressourcen zu jeder Zeit aussieht. Um nachhaltig genügend Ressourcen auf den Hypervisoren freizuhalten, interessiert dabei nicht nur die CPU-Auslastung, sondern auch die Arbeitsspeichernutzung. Als Datenquelle kam in diesem Beispiel Graphite zum Einsatz, ein Open-Source-Tool für die Überwachung von Performancedaten.


Das Open-Source-Tool Graphite liefert eine Übersicht zur Auslastung der einzelnen Hypervisoren.

Die von Graphite generierte Skala vermittelt bereits einen guten Eindruck über die allgemeine Verteilung und Nutzung der Ressourcen. Auf der Y-Achse ist die freie CPU-Kapazität der jeweiligen Hypervisoren in "Performance-Value" abgebildet. Dadurch, dass häufig unterschiedliche Hardwaremodelle zum Einsatz kommen, kann dem Vergleich nicht die prozentuale CPU-Auslastung zugrunde liegen. Der "Performance Value" setzt sich aus der maximalen Load eines Hypervisors, der Anzahl der CPU-Kerne und einem Performancefaktor zusammen. Dieser Faktor ermöglicht es, die unterschiedlichen Hardwaremodelle in Relation zu setzen.

Auf der X-Achse lässt sich die Auslastung des Arbeitsspeichers in GByte ablesen. Jeder Punkt auf dem Graphen repräsentiert somit einen Hypervisor mit seiner CPU- und Arbeitsspeicherauslastung. Punkte, die sich weit oben und nah der Y-Achse befinden, haben also viel CPU-Leistung frei, aber keinen Arbeitsspeicher.

Für eine noch bessere Visualisierung lässt sich der Durchschnitt von CPU und Memory aller Server berechnen und mit Hilfe eine Linie darstellen. Der Schnittpunkt ist die "optimale" Verteilung. Der Kreis kennzeichnet einen Toleranzbereich. Ziel ist es, im nächsten Schritt durch Migrationen der virtuellen Maschinen jeden Hypervisor in diese Schnittmenge zu manövrieren.
28.07.2021/ln/Konstantin Beste, Systemadministrator bei InnoGames

Nachrichten

Schutz in Blau [14.07.2022]

AvePoint stellt Erweiterungen seiner Datenwiederherstellungsfunktionen für Microsoft Azure vor. Das Cloudbackup des Anbieters ermöglicht nun auch den Schutz von Microsoft-Azure-Workloads. Das Produkt ergänzt die native Microsoft-Sicherung zum einen um regelmäßige vollständige und inkrementelle Backups. Mithilfe des Updates sollen sich geschäftskritische Anwendungen und Daten alle sechs Stunden oder bis zu vier Mal pro Tag sichern lassen. [mehr]

Flowmon 12 erweitert Multicloud-Monitoring [7.07.2022]

Progress hat Flowmon 12 veröffentlicht, die neue Version seiner Lösung für Netzwerksichtbarkeit und -sicherheit. Sie unterstützt ab sofort auch das Monitoring nativer Flow Logs in der Google Cloud sowie Microsoft Azure und enthält neue Funktionen für die Anomalie-Erkennung. [mehr]

Tipps & Tools

Android-Screen auf Windows-Bildschirm spiegeln [19.08.2022]

Trotz aller Faszination für die Multimediafähigkeiten moderner Smartphones fühlen sich viele Profianwender von der Kleinformatigkeit des Bildschirms auf Dauer gestört. Dann ist gut zu wissen, dass sich Screens von Android-Systemen auf PCs unter Windows 11 spiegeln lassen – mit wenig Aufwand und Bordmitteln als einzige Helfer. [mehr]

Änderungen auf Webseiten nachverfolgen [6.08.2022]

Die wenigsten Nutzer haben die Zeit, um regelmäßig besuchte Webseiten im Detail auf Aktualisierungen zu prüfen. Mit dieser Aufgabe kann der "WebChangeMonitor" besser umgehen, der automatisch eine Vielzahl an Internetseiten automatisch auf Änderungen überprüft. Dabei können Sie das Intervall für jede Webseite individuell festlegen. [mehr]

Buchbesprechung

Kerberos

von Mark Pröhl und Daniel Kobras

Anzeigen