Nowy moduł równoważenia obciążenia procesora od MIT

Planuje się, że system Shenango będzie stosowany w centrach danych.

Nowy moduł równoważenia obciążenia procesora od MIT
/ zdjęcie Marco verch CC BY

Według jednego z dostawców, centra danych posługiwać się jedynie 20–40% dostępnej mocy obliczeniowej. Przy dużych obciążeniach ten wskaźnik może osiągnąć 60%. 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 są bez pracy, 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 rozwinęła się 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 repozytoria 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 DPDK, 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 bufor pierścieniowy. 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.

Nowy moduł równoważenia obciążenia procesora od MIT

Shenango dodatkowo przyjmuje takie podejście kradzież pracy. 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 zgodnie z 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 świętować 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 NUMA-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.

Nowy moduł równoważenia obciążenia procesora od MIT
/ zdjęcie Tima Reckmanna CC BY

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

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ż jest w domenie publicznej.

odkrycia

Nowoczesne centra danych stale się rozwijają, a tendencja wzrostowa jest szczególnie widoczna na rynku hiperskalowych centrów danych: obecnie na świecie tam jest 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 wprowadzić w życie 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

Dodaj komentarz