Neuer CPU-Load-Balancer vom MIT

Der Einsatz des Shenango-Systems ist in Rechenzentren geplant.

Neuer CPU-Load-Balancer vom MIT
/ Foto Marco Verch CC BY

Nach Angaben eines der Anbieter Rechenzentren verwenden nur 20–40 % der verfügbaren Rechenleistung. Bei hohen Belastungen dieser Indikator kann 60% erreichen. Diese Ressourcenverteilung führt zur Entstehung sogenannter „Zombie-Server“. Dabei handelt es sich um Maschinen, die die meiste Zeit im Leerlauf stehen und Energie verschwenden. Heute 30 % der Server weltweit sind arbeitslos, der jährlich Strom im Wert von 30 Milliarden US-Dollar verbraucht.

Das MIT beschloss, die ineffiziente Nutzung von Computerressourcen zu bekämpfen.

Entwickler Team hat sich entwickelt Prozessorlastausgleichssystem namens Shenango. Sein Zweck besteht darin, den Zustand des Aufgabenpuffers zu überwachen und festsitzende Prozesse (die keine CPU-Zeit erhalten können) auf freie Maschinen umzuverteilen.

Wie Shenango funktioniert

Shenango ist eine Linux-Bibliothek in C mit Rust- und C++-Anbindungen. Der Projektcode und die Testanwendungen werden in veröffentlicht Lagerstätten auf GitHub.

Die Lösung basiert auf dem IOKernel-Algorithmus, der auf einem dedizierten Kern eines Multiprozessorsystems läuft. Es verwaltet CPU-Anfragen mithilfe eines Frameworks DPDK, wodurch Anwendungen direkt mit Netzwerkgeräten kommunizieren können.

Der IOKernel entscheidet, an welche Kernel eine bestimmte Aufgabe delegiert werden soll. Der Algorithmus entscheidet auch, wie viele Kerne benötigt werden. Für jeden Prozess werden die Hauptkerne (garantiert) und zusätzliche Kerne (burstable) ermittelt – letztere werden bei einem starken Anstieg der Anzahl der Anfragen an die CPU gestartet.

Die IOKernel-Anforderungswarteschlange ist wie folgt organisiert: Ringpuffer. Alle fünf Mikrosekunden prüft der Algorithmus, ob alle dem Kern zugewiesenen Aufgaben abgeschlossen wurden. Dazu vergleicht es die aktuelle Position des Pufferkopfes mit der vorherigen Position seines Schwanzes. Stellt sich heraus, dass sich der Tail zum Zeitpunkt der vorherigen Prüfung bereits in der Warteschlange befand, erkennt das System die Pufferüberlastung und weist dem Prozess einen zusätzlichen Kern zu.

Bei der Lastverteilung wird den Kernen Priorität eingeräumt, auf denen derselbe Prozess zuvor ausgeführt wurde und teilweise im Cache verblieben ist, bzw. den Kernen, die sich im Leerlauf befinden.

Neuer CPU-Load-Balancer vom MIT

Auch Shenango geht diesen Weg Arbeit stehlen. Die für die Ausführung einer Anwendung zugewiesenen Kerne überwachen die Anzahl der Aufgaben, die die jeweils andere Anwendung hat. Erledigt ein Kern seine Aufgabenliste vor den anderen, „entlastet“ er seine Nachbarn teilweise.

Vor- und Nachteile

Auf Text Ingenieure vom MIT, Shenango, sind in der Lage, fünf Millionen Anfragen pro Sekunde zu verarbeiten und eine durchschnittliche Antwortzeit von 37 Mikrosekunden aufrechtzuerhalten. Experten sagen, dass die Technologie in einigen Fällen die Auslastung von Prozessoren in Rechenzentren auf 100 % steigern kann. Dadurch können Rechenzentrumsbetreiber bei der Anschaffung und Wartung von Servern sparen.

Lösungspotenzial note und Spezialisten anderer Universitäten. Laut einem Professor eines koreanischen Instituts wird das MIT-System dazu beitragen, Verzögerungen bei Webdiensten zu reduzieren. Es wird beispielsweise in Online-Shops nützlich sein. An Verkaufstagen kommt es sogar zu einer zweiten Verzögerung beim Laden der Seite приводит zu einem Rückgang der Anzahl der Seitenaufrufe um 11 %. Eine schnelle Lastverteilung wird dazu beitragen, mehr Kunden zu bedienen.

Die Technologie hat immer noch Nachteile – sie unterstützt keinen Multiprozessor NUMA-Systeme, bei denen Chips mit verschiedenen Speichermodulen verbunden sind und nicht miteinander „kommunizieren“. In diesem Fall kann IOKernel den Betrieb einer separaten Gruppe von Prozessoren regeln, jedoch nicht aller Serverchips.

Neuer CPU-Load-Balancer vom MIT
/ Foto Tim Reckmann CC BY

Ähnliche Technologien

Zu den anderen Prozessorlastausgleichssystemen gehört Arachne. Es berechnet, wie viele Kerne eine Anwendung beim Start benötigt, und verteilt Prozesse entsprechend diesem Indikator. Nach Angaben der Autoren beträgt die maximale Latenz einer Anwendung in Arachne etwa 10 Mikrosekunden.

Die Technologie ist als C++-Bibliothek für Linux implementiert und der Quellcode ist unter verfügbar GitHub.

Ein weiteres Balancing-Tool ist ZygOS. Wie Shenango nutzt die Technologie die Methode des Arbeitsdiebstahls, um Prozesse neu zu verteilen. Laut den Autoren von ZygOS beträgt die durchschnittliche Anwendungslatenz bei Verwendung des Tools etwa 150 Mikrosekunden und das Maximum etwa 450 Mikrosekunden. Der Projektcode ist auch ist gemeinfrei.

Befund

Moderne Rechenzentren expandieren immer weiter. Der zunehmende Trend macht sich vor allem auf dem Markt der Hyperscale-Rechenzentren bemerkbar: jetzt weltweit da ist 430 Hyperscale-Rechenzentren, aber in den kommenden Jahren könnte ihre Zahl um 30 % steigen. Aus diesem Grund werden Technologien zur Prozessorlastverteilung stark nachgefragt. Systeme wie Shenango sind bereits verfügbar implementieren große Unternehmen, und die Zahl solcher Tools wird in Zukunft nur noch zunehmen.

Beiträge aus dem ersten Blog zum Thema Corporate IaaS:

Source: habr.com

Kommentar hinzufügen