System Shenango planuje wykorzystać w centrach danych.
/ фото
Według jednego z dostawców, centra danych stanowią zaledwie 20–40% dostępnych mocy obliczeniowych. W warunkach dużego obciążenia ten wskaźnik . Taki rozkład zasobów prowadzi do powstawania tzw. „zombie-serwerów”. To maszyny, które przez większość czasu są bezczynne, bezproduktywnie zużywając energię elektryczną. Obecnie 30% serwerów na świecie , pobierając prąd za 30 miliardów dolarów rocznie.
Z problemem nieefektywnego wykorzystania zasobów obliczeniowych postanowili zmierzyć się w MIT.
Zespół inżynierów opracował system równoważenia obciążenia procesorów o nazwie Shenango. Jego celem jest monitorowanie stanu bufora zadań i redistribucja „utkniętych” procesów (które nie mogą uzyskać czasu procesora) na dostępne maszyny.
Jak działa Shenango
Shenango to biblioteka Linux napisana w języku C z powiązaniami w Rust i C++. Kod projektu i aplikacje testowe są opublikowane w na GitHubie.
Podstawą rozwiązania jest algorytm IOKernel, który działa na dedykowanym rdzeniu systemu wieloprocesorowego. Zarządza on żądaniami do CPU za pomocą frameworka , który pozwala aplikacjom na bezpośrednią interakcję z urządzeniami sieciowymi.
IOKernel decyduje, którym rdzeniom przydzielić konkretną zadanie. Algorytm ustala również, ile rdzeni będzie potrzebnych. Dla każdego procesu określane są rdzenie podstawowe (guaranteed) i dodatkowe (burstable) – drugie uruchamiane są w przypadku nagłego wzrostu liczby żądań do CPU.
Kolejka żądań IOKernel jest zorganizowana w formie . Co pięć mikrosekund algorytm sprawdza, czy wszystkie zadania przypisane do rdzenia zostały wykonane. W tym celu porównuje bieżącą pozycję „głowy” bufora z poprzednią pozycją jego „ogona”. Jeśli okaże się, że ogon był już w kolejce w momencie poprzedniej kontroli, system zaznacza przeciążenie bufora i przydziela dodatkowy rdzeń dla procesu.
Podczas rozkładania obciążenia priorytet mają rdzenie, na których taki sam proces był wcześniej wykonywany i częściowo pozostał w pamięci cache, lub jakiekolwiek bezczynne rdzenie.

Shenango dodatkowo wykorzystuje podejście Jądra przypisane do jednego zadania śledzą liczbę zadań swojego sąsiada. Jeśli jedno jądro kończy swoją listę zadań wcześniej niż pozostałe, „zdjęcie” części obciążenia z sąsiadów.
Zalety i wady
Według Inżynierowie z MIT, Shenango jest w stanie obsługiwać pięć milionów zapytań na sekundę i utrzymać średni czas reakcji wynoszący 37 mikrosekund. Specjaliści twierdzą, że w niektórych przypadkach technologia może zwiększyć współczynnik wykorzystania procesorów w centrach danych do 100%. W rezultacie operatorzy centrów danych mogą oszczędzać na zakupie i utrzymaniu serwerów.
Potencjał rozwiązania i specjaliści z innych uniwersytetów. Według profesora z koreańskiego instytutu system z MIT pomoże zmniejszyć opóźnienia w pracy serwisów internetowych. Na przykład, przyda się w pracy sklepów internetowych. W dni sprzedażowe nawet sekundowe opóźnienie załadunku strony może prowadzić do spadku liczby odsłon strony o 11%. Błyskawiczne rozdzielanie obciążenia pomoże obsłużyć więcej klientów.
Technologia ma jednak swoje wady — nie obsługuje systemów wieloprocesorowych -systemów, w których chipy są podłączone do różnych modułów pamięci i nie „komunikują się” ze sobą. W takim przypadku IOKernel może regulować pracę wybranej grupy procesorów, ale nie wszystkich chipów serwera.

/ фото
Podobne technologie
Wśród innych systemów równoważenia obciążenia na procesorach można wyróżnić Arachne. Oblicza, ile rdzeni będzie potrzebnych aplikacji w momencie jej uruchamiania, i rozdziela procesy zgodnie z tym wskaźnikiem. Według autorów, maksymalne opóźnienie działania aplikacji w Arachne wynosi około 10 tysięcy mikrosekund.
Technologia jest zrealizowana w postaci biblioteki C++ dla systemu Linux, a jej kod źródłowy jest dostępny na .
Innym narzędziem równoważącym obciążenie jest ZygOS. Podobnie jak Shenango, technologia ta wykorzystuje metodę kradzieży pracy do redistribucji procesów. Z danych autorów ZygOS wynika, że średnie opóźnienie w pracy aplikacji przy użyciu tego narzędzia wynosi około 150 mikrosekund, a maksymalne — około 450 mikrosekund. Kod projektu również .
Wnioski
Nowoczesne centra danych nadal się rozwijają, szczególnie wyraźny trend wzrostowy można zaobserwować na rynku centrów danych hyperscale: obecnie na świecie 430 hiper-skalowalnych obiektów data center, ale w najbliższych latach ich liczba może wzrosnąć o 30%. Z tego powodu technologie rozkładu obciążenia na procesorach będą bardzo poszukiwane. Systemy takie jak Shenango już teraz duże korporacje, a w przyszłości liczba takich narzędzi będzie tylko rosła.
Posty z Pierwszego bloga o korporacyjnym IaaS:
Źródło: habr.com
