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

Mit Open-Source gegen Klimawandel [9.09.2021]

Red Hat gibt seinen Beitritt zum Projekt "OS-Climate" bekannt. Die von der Linux Foundation geförderte Open-Source-Initiative zielt auf die Entwicklung von Technologien und Datenplattformen ab, die die Finanzindustrie benötigt, um die Auswirkungen des Klimawandels bei Entscheidungsprozessen sowie dem Risk Management zu berücksichtigen. [mehr]

Lenovo präsentiert globale Everything-as-a-Service-Strategie [8.09.2021]

Auf der jährlichen Tech World kündigt Lenovo die Weiterentwicklung seines verbrauchsbasierten Geschäftsmodells an: Lenovo TruScale wird zum portfolioübergreifenden Everything-as-a-Service-Angebot. Das Unternehmen erweitert damit die Marke TruScale über reine Infrastrukturdienste hinaus und fasst alle As-a-Service-Angebote unter einem Dach zusammen. [mehr]

Vielseitiges WinZip [6.09.2021]

Doppelt gesichert [31.08.2021]

Tipps & Tools

Status für Keyboard-Tasten im Blick behalten [17.09.2021]

Häufig ist beim schnellen Arbeiten versehentlich die ein oder andere Sondertaste gedrückt und die Suche nach dem Fehler geht los. Daher lohnt sich ein Blick auf das kostenfreie Tool "TrayStatus", das Ihnen den Status der Spezialtasten wie Rollen, Num, Umschalt, Strg, Alt und weitere im Systemtray übersichtlich anzeigt. Dadurch erkennen Sie sofort, welche Taste Sie unter Umständen wieder in den Ausgangszustand zurückversetzen müssen. [mehr]

Schnittstellen verwalten mit einer API-Management-Plattform [16.09.2021]

Neue digitale Lösungen von einem spezialisierten Dienstleister extern entwickeln und integrieren zu lassen, ist für viele Unternehmen eine interessante Option. Wenn da nicht die Problematik der "Two Speed IT" wäre, der IT der zwei Geschwindigkeiten: Die innovative Applikation steht innerhalb weniger Monate bereit – doch bis die erforderlichen Daten sicher und datenschutzkonform verfügbar sind, vergeht oft sehr viel Zeit. Eine API-Management-Plattform kann hier Abhilfe schaffen. [mehr]

Buchbesprechung

Windows 10 Power-Tipps

von Günter Born

Anzeigen