Das Shenango-System soll in Rechenzentren eingesetzt werden.
/ фото
Laut einem Anbieter nutzen Rechenzentren insgesamt 20–40 % der verfügbaren Rechenleistung. Bei hoher Auslastung kann dieser Wert Eine solche Ressourcenzuteilung führt zur Entstehung sogenannter „Zombie-Server“. Das sind Maschinen, die die meiste Zeit untätig sind und unnötig Strom verbrauchen. Heute stehen 30 % der Server weltweit , was einen jährlichen Stromverbrauch von 30 Milliarden Dollar bedeutet.
Um der ineffizienten Nutzung von Rechenressourcen entgegenzuwirken, haben die Forscher am MIT
Ein Team von Ingenieuren ein Lastverteilungssystem für Prozessoren namens Shenango entwickelt. Ziel ist es, den Zustand des Aufgaben Puffers zu überwachen und „festgefahrene“ Prozesse (die keine CPU-Zeit erhalten können) auf freie Maschinen umzuleiten.
Wie Shenango funktioniert
Shenango ist eine Linux-Bibliothek in C mit Bindings in Rust und C++. Der Projektcode und die Testanwendungen wurden veröffentlicht in auf GitHub.
Die Grundlage der Lösung ist der Algorithmus IOKernel, der auf einem dedizierten Kern eines Mehrprozessorsystems läuft. Er verwaltet die CPU-Anfragen mit einem Framework , das es Anwendungen ermöglicht, direkt mit Netzwerkgeräten zu interagieren.
IOKernel entscheidet, an welche Kerne eine bestimmte Aufgabe übergeben wird. Der Algorithmus bestimmt auch, wie viele Kerne benötigt werden. Für jeden Prozess werden Hauptkerne (guaranteed) und zusätzliche Kerne (burstable) definiert – letztere werden aktiviert, wenn die Anzahl der CPU-Anfragen plötzlich ansteigt.
Die Anfragenwarteschlange von IOKernel ist organisiert in Form eines Alle fünf Mikrosekunden überprüft der Algorithmus, ob alle Aufgaben, die dem Kern zugewiesen sind, ausgeführt wurden. Dazu vergleicht er die aktuelle Position des „Kopfes“ des Puffers mit der vorherigen Position seines „Schwanzes“. Wenn sich herausstellt, dass der Schwanz bereits in der Warteschlange war, als die vorherige Überprüfung stattfand, erkennt das System eine Überlastung des Puffers und weist für den Prozess einen zusätzlichen Kern zu.
Bei der Lastverteilung wird den Kernen, auf denen ein solcher Prozess zuvor ausgeführt wurde und teilweise im Cache geblieben ist, oder allen inaktiven Kernen der Vorzug gegeben.

Zusätzlich nutzt Shenango den Ansatz . Kerne, die für die Ausführung einer Anwendung vorgesehen sind, überwachen die Anzahl der Aufgaben untereinander. Wenn ein Kern seine Aufgabenliste schneller als die anderen abschließt, "entlastet" er die Nachbarn.
Vor- und Nachteile
Nach Ingenieure des MIT, Shenango kann fünf Millionen Anfragen pro Sekunde verarbeiten und die durchschnittliche Reaktionszeit bei 37 Mikrosekunden halten. Experten behaupten, dass die Technologie in einigen Fällen die Auslastung der Prozessoren in Rechenzentren auf bis zu 100 % erhöhen kann. Dadurch können Rechenzentrumsbetreiber bei der Beschaffung und Wartung von Servern sparen.
Das Lösungspotenzial und Fachleute anderer Universitäten. Laut einem Professor des koreanischen Instituts wird das System des MIT helfen, die Latzenz von Webdiensten zu reduzieren. Zum Beispiel ist es in Online-Shops nützlich. An Verkaufstagen führt bereits eine Verzögerung von einer Sekunde beim Laden einer Seite zu einem Rückgang der Seitenaufrufe um 11 %. Eine schnelle Lastverteilung wird helfen, mehr Kunden zu bedienen.
Die Technologie hat jedoch auch Nachteile — sie unterstützt keine Multiprozessorsysteme, bei denen Chips an unterschiedlichen Speichermodulen angeschlossen sind und nicht "miteinander kommunizieren". In diesem Fall kann IOKernel die Arbeit einer einzelnen Gruppe von Prozessoren steuern, aber nicht aller Chips des Servers.

/ фото
Ähnliche Technologien
Unter anderen Lastenausgleichssystemen für Prozessoren kann Arachne hervorgehoben werden. Es berechnet, wie viele Kerne die Anwendung beim Start benötigt, und verteilt die Prozesse entsprechend. Schätzungen der Autoren zufolge beträgt die maximale Verzögerung der Anwendung in Arachne etwa 10.000 Mikrosekunden.
Die Technologie ist als C++-Bibliothek für Linux implementiert, und der Quellcode ist verfügbar unter .
Ein weiteres Lastenausgleichsinstrument ist ZygOS. Wie Shenango verwendet die Technologie die Methode des Work-Stealing für die Verteilung der Prozesse. Laut den Autoren von ZygOS beträgt die durchschnittliche Verzögerung bei der Arbeit von Anwendungen mit dem Tool etwa 150 Mikrosekunden, während die maximale etwa 450 Mikrosekunden beträgt. Der Code des Projekts ist ebenfalls .
Das DBMS Tarantool ist ein attraktives, zukunftsträchtiges Produkt zur Erstellung von hochbelasteten Anwendungen.
Moderne Rechenzentren expandieren weiterhin, insbesondere ist der Trend zur Zunahme auf dem Markt für Hyperscale-Rechenzentren deutlich: Derzeit gibt es weltweit 430 hyper-skalierbare Rechenzentren, aber in den kommenden Jahren könnte sich ihre Zahl um 30 % erhöhen. Aus diesem Grund werden Technologien zur Lastenverteilung auf Prozessoren sehr gefragt sein. Systeme wie Shenango werden bereits jetzt , und in Zukunft wird die Anzahl solcher Werkzeuge nur steigen.
Beiträge aus dem ersten Unternehmens-IaaS-Blog:
Quelle: habr.com
