Planuje się, że system Shenango będzie stosowany w centrach danych.
/ zdjęcie
Według jednego z dostawców, centra danych jedynie 20–40% dostępnej mocy obliczeniowej. Przy dużych obciążeniach ten wskaźnik . Taka dystrybucja zasobów prowadzi do pojawienia się tak zwanych „serwerów zombie”. Są to maszyny, które przez większość czasu pozostają bezczynne i marnują energię. Dziś 30% serwerów na świecie , zużywając rocznie energię elektryczną wartą 30 miliardów dolarów.
MIT postanowił walczyć z nieefektywnym wykorzystaniem zasobów obliczeniowych.
Zespół inżynierów system równoważenia obciążenia procesora o nazwie Shenango. Jego celem jest monitorowanie stanu bufora zadań i redystrybucja zablokowanych procesów (które nie mogą otrzymać czasu procesora) do wolnych maszyn.
Jak działa Shenango
Shenango to biblioteka Linux w C z powiązaniami Rust i C++. Kod projektu i aplikacje testowe są publikowane w na GitHubie.
Rozwiązanie opiera się na algorytmie IOKernel, który działa na dedykowanym rdzeniu systemu wieloprocesorowego. Zarządza żądaniami procesora za pomocą frameworka , który umożliwia aplikacjom bezpośrednią komunikację z urządzeniami sieciowymi.
IOKernel decyduje, któremu jądrze delegować określone zadanie. Algorytm decyduje również, ile rdzeni będzie potrzebnych. Dla każdego procesu określane są rdzenie główne (gwarantowane) i dodatkowe (burstable) - te ostatnie są uruchamiane w przypadku gwałtownego wzrostu liczby żądań do procesora.
Kolejka żądań IOKernel jest zorganizowana jako . Co pięć mikrosekund algorytm sprawdza, czy wszystkie zadania przypisane do rdzenia zostały zakończone. W tym celu porównuje aktualne położenie główki bufora z poprzednią pozycją jego ogona. Jeżeli w momencie poprzedniego sprawdzenia okaże się, że ogon znajdował się już w kolejce, system odnotuje przeciążenie bufora i przydziela procesowi dodatkowy rdzeń.
Przy rozdzielaniu obciążenia pierwszeństwo mają rdzenie, na których ten sam proces został wykonany wcześniej i częściowo pozostały w pamięci podręcznej, lub dowolne rdzenie bezczynne.

Shenango dodatkowo przyjmuje takie podejście . Rdzenie przydzielone do obsługi jednej aplikacji monitorują liczbę zadań, jakie mają każda inna. Jeśli jeden rdzeń zakończy swoją listę zadań przed innymi, wówczas „odciąża” część obciążenia od swoich sąsiadów.
Zalety i wady
Na inżynierów z MIT, Shenango jest w stanie przetworzyć pięć milionów żądań na sekundę i utrzymać średni czas odpowiedzi na poziomie 37 mikrosekund. Eksperci twierdzą, że w niektórych przypadkach technologia może zwiększyć stopień wykorzystania procesorów w centrach danych do 100%. Dzięki temu operatorzy centrów danych będą mogli zaoszczędzić na zakupie i utrzymaniu serwerów.
Potencjał rozwiązania oraz specjaliści z innych uczelni. Według profesora z koreańskiego instytutu system MIT pomoże zmniejszyć opóźnienia w usługach sieciowych. Przyda się np. w sklepach internetowych. W dni wyprzedaży występuje nawet drugie opóźnienie w ładowaniu strony do spadku liczby odsłon serwisu o 11%. Szybkie rozłożenie obciążenia pomoże obsłużyć większą liczbę klientów.
Technologia nadal ma wady - nie obsługuje wielu procesorów -systemy, w których chipy są podłączone do różnych modułów pamięci i nie „komunikują się” ze sobą. W tym przypadku IOKernel może regulować pracę osobnej grupy procesorów, ale nie wszystkich chipów serwerowych.

/ zdjęcie
Podobne technologie
Inne systemy równoważenia obciążenia procesora obejmują Arachne. Oblicza, ile rdzeni będzie potrzebowała aplikacja po uruchomieniu i rozdziela procesy według tego wskaźnika. Według autorów maksymalne opóźnienie aplikacji w Arachne wynosi około 10 tysięcy mikrosekund.
Technologia jest zaimplementowana jako biblioteka C++ dla systemu Linux, a jej kod źródłowy jest dostępny pod adresem .
Kolejnym narzędziem równoważącym jest ZygOS. Podobnie jak Shenango, technologia wykorzystuje metodę kradzieży pracy w celu redystrybucji procesów. Według autorów ZygOS-a średnie opóźnienie aplikacji podczas korzystania z narzędzia wynosi około 150 mikrosekund, a maksymalne to około 450 mikrosekund. Kod projektu również .
odkrycia
Nowoczesne centra danych stale się rozwijają, a tendencja wzrostowa jest szczególnie widoczna na rynku hiperskalowych centrów danych: obecnie na świecie 430 hiperskalowych centrów danych, ale w nadchodzących latach ich liczba może wzrosnąć o 30%. Z tego powodu technologie równoważenia obciążenia procesora będą bardzo poszukiwane. Systemy takie jak Shenango są już dostępne dużych korporacji, a liczba takich narzędzi będzie w przyszłości tylko rosła.
Wpisy z pierwszego bloga o korporacyjnym IaaS:
Źródło: www.habr.com
