Nowy rozkładacz obciążenia CPU od MIT

System Shenango planuje wykorzystać w centrach danych.

Nowy rozkładacz obciążenia CPU od MIT
/ фото Marco Verch CC BY

Według jednego z dostawców, centra danych używają stanowią zaledwie 20–40% dostępnych mocy obliczeniowych. W warunkach dużego obciążenia ten wskaźnik może sięgnąć 60%. 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 są nieaktywne, 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ł 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 repozytorium 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 DPDK, 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 bufora cyclical. 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.

Nowy rozkładacz obciążenia CPU od MIT

Shenango dodatkowo wykorzystuje podejście kradzież pracyJą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 słowami 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 zauważają 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 przywołuje 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 NUMA-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.

Nowy rozkładacz obciążenia CPU od MIT
/ фото Tim Reckmann CC BY

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 GitHub.

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ż jest dostępny publicznie.

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 istnieje 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 wdrażają 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

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster