Die Shenango-Technologie ist für den Einsatz in Rechenzentren geplant.
/ фото
Laut einem der Anbieter nutzen Rechenzentren nur 20–40% der verfügbaren Rechenleistung. Bei hoher Auslastung kann dieser Wert Eine derartige Ressourcenzuteilung führt zur Entstehung sogenannter 'Zombie-Server'. Dies sind Maschinen, die einen Großteil der Zeit untätig sind und unnötig Strom verbrauchen. Heute stehen weltweit 30% der Server , was jährliche Stromkosten von 30 Milliarden US-Dollar verursacht.
Mit dem ineffizienten Verbrauch von Rechenressourcen möchte man am MIT etwas unternehmen.
Ein Team von Ingenieuren hat ein Lastverteilungssystem für Prozessoren namens Shenango entwickelt. Ziel ist es, den Zustand der Aufgabenpuffer zu überwachen und 'hängende' Prozesse (die keinen CPU-Zeit erhalten können) auf freie Maschinen umzuleiten.
So funktioniert Shenango
Shenango ist eine Linux-Bibliothek in C mit Bindings für Rust und C++. Der Code des Projekts und die Testanwendungen sind veröffentlicht auf auf GitHub weiterentwickelt.
Die Lösung basiert auf dem IOKernel-Algorithmus, der auf einem dedizierten Kern eines Multiprozessorsystems läuft. Er verwaltet die Anfragen an die CPU mithilfe des Frameworks , der es Anwendungen ermöglicht, direkt mit Netzwerkgeräten zu interagieren.
IOKernel entscheidet, welchen Kernen eine bestimmte Aufgabe zugewiesen werden soll. Der Algorithmus legt auch fest, wie viele Kerne benötigt werden. Für jeden Prozess werden die primären Kerne (guaranteed) und sekundären Kerne (burstable) - die letzteren werden aktiviert, wenn die Anfragen an die CPU stark ansteigen.
Die Anfragenwarteschlange von IOKernel ist organisiert als . Alle fünf Mikrosekunden überprüft der Algorithmus, ob alle Aufgaben, die dem Kern zugewiesen wurden, abgeschlossen sind. Dazu vergleicht er die aktuelle Position des „Kopfes“ des Puffers mit der vorherigen Position seines „Schwanzes“. Wenn der Schwanz bereits in der Warteschlange war, als die vorherige Prüfung durchgeführt wurde, erkennt das System eine Pufferüberlastung und weist dem Prozess einen zusätzlichen Kern zu.
Bei der Lastverteilung erhalten die Kerne Priorität, auf denen ein solcher Prozess zuvor ausgeführt wurde und teilweise im Cache gespeichert ist, oder beliebigen ungenutzten Kernen.

Shenango verwendet zusätzlich den Ansatz . Die für die Ausführung einer Anwendung zugewiesenen Kerne überwachen sich gegenseitig bei der Anzahl der Aufgaben. Wenn ein Kern seine Aufgabenliste früher als die anderen beendet, „entlastet“ er die Nachbarkerne.
Vor- und Nachteile
Nach Ingenieure des MIT haben die Shenango-Technologie entwickelt, die fünf Millionen Anfragen pro Sekunde verarbeiten kann und eine durchschnittliche Reaktionszeit von 37 Mikrosekunden aufweist. Experten behaupten, dass die Technologie in der Lage ist, die Auslastung der Prozessoren in Rechenzentren auf bis zu 100 % zu steigern. Dadurch können Rechenzentrumsbetreiber bei der Anschaffung und Wartung von Servern sparen.
Potenzial der Lösung und Fachleute anderer Universitäten. Laut einem Professor des koreanischen Instituts wird das System des MIT die Latenzzeiten von Webdiensten reduzieren. Es könnte beispielsweise für Online-Shops nützlich sein. An Verkaufstagen führt selbst eine Sekunde Ladeverzögerung reduziert die Anzahl der Seitenaufrufe um 11 %. Eine effiziente Lastverteilung ermöglicht es, mehr Kunden zu bedienen.
Die Technologie hat jedoch derzeit Nachteile – sie unterstützt keine mehreren Prozessoren -Systeme, in denen Chips mit verschiedenen Speichermodulen verbunden sind und nicht miteinander „kommunizieren“. In diesem Fall kann IOKernel die Arbeit einer bestimmten Gruppe von Prozessoren regeln, aber nicht alle Chips des Servers.

/ фото
Ähnliche Technologien
Unter den anderen Lastverteilungssystemen für Prozessoren sticht Arachne hervor. Es berechnet, wie viele Kerne eine Anwendung beim Start benötigt, und verteilt die Prozesse entsprechend. Schätzungen zufolge beträgt die maximale Verzögerung der Anwendung in Arachne etwa 10.000 Mikrosekunden.
Die Technologie ist in Form einer C++-Bibliothek für Linux realisiert, und ihr Quellcode ist verfügbar unter .
Ein weiteres Lastverteilungstool ist ZygOS. Wie Shenango verwendet die Technologie zur Verlagerung von Prozessen die Methode des Work Stealing. Laut den Entwicklern von ZygOS beträgt die durchschnittliche Verzögerung bei der Ausführung von Anwendungen mit diesem Tool etwa 150 Mikrosekunden, während die maximale Verzögerung etwa 450 Mikrosekunden beträgt. Der Code des Projekts ist ebenfalls .
Fazit
Moderne Rechenzentren erweitern sich weiterhin, insbesondere ist der Trend zum Wachstum auf dem Markt für Hyperscale-Rechenzentren deutlich sichtbar: Derzeit gibt es weltweit 430 hyper-skaliert Datencenter, doch in den nächsten Jahren könnte sich deren Anzahl um 30 % erhöhen. Aus diesem Grund werden Technologien zur Lastenverteilung auf Prozessoren sehr gefragt sein. Systeme wie Shenango werden bereits jetzt von großen Unternehmen, und in Zukunft wird die Zahl solcher Werkzeuge nur noch steigen.
Beiträge aus dem Ersten Blog über Unternehmens-IaaS:
Quelle: habr.com
