Demonstrator energooszczędnego sterownika CPU dla systemu operacyjnego Linux

Celem projektu było stworzenie oraz implementacja mechanizmu sterowania częstotliwością pracy procesora optymalizującego koszty zużycia energii elektrycznej

  • Nazwa projektu: Demonstrator energooszczędnego sterownika CPU dla systemu operacyjnego Linux
  • Źródło finansowania: NASK
  • Cel projektu: Opracowanie i implementacja mechanizmu sterowania częstotliwością pracy procesora (CPU) optymalizującego koszty zużycia energii elektrycznej wybranych serwerów aplikacji działających w środowisku systemu operacyjnego Linux.

System Linux udostępnia szereg mechanizmów umożliwiających redukcję poziomu zużycia energii elektrycznej. Wśród najskuteczniejszych znajdują się mechanizmy sterowania częstotliwością procesora (CPU) zaimplementowane w module cpufreq. Moduł ten stanowi warstwę pośrednią pomiędzy sprzętowymi sterownikami procesorów przełączającymi napięcie i częstotliwości taktowania, a sterownikami programowymi realizującymi zaprojektowane polityki sterowania na poziomie systemu operacyjnego.
Sterowniki programowe udostępniane przez jądro systemu Linux przeznaczone są do powszechnego użytku i obsługi szerokiej klasy architektur sprzętowych. Przeprowadzone w Pionie Naukowym NASK badania teoretyczne wykazały, że istnieje możliwość poprawy efektywności istniejących mechanizmów sterowania CPU. Opracowane narzędzia pozwalają zoptymalizować działanie serwera poprzez dostosowanie charakterystyki pracy procesora do dynamiki udostępnianych przez system operacyjny usług. Pozwala to na zredukowanie kosztów zużycia energii, przy jednoczesnej poprawie jakości działania serwera.
W ramach projektu stworzony został pakiet oprogramowania:

  • umożliwiający identyfikację modelu dynamiki i wydajności usług udostępnianych w środowisku systemu operacyjnego Linux,
  • wspierający projektowanie oraz implementację modułu jądra systemu Linux optymalizującego pracę procesora (CPU).

Wyniki testów

Mechanizmy sterowania zaprojektowane i zaimplementowane przy pomocy stworzonego oprogramowania zostały poddane badaniom eksperymentalnym. Testy przeprowadzono na eksperymentalnym klastrze obliczeniowym w laboratorium Laboratorium Technik Wirtualnych Internetu NASK. Celem badań było oszacowanie wskaźników poprawy efektywności sterowania procesorem względem sterowników modułu cpufreq: ondemand (podstawowy energooszczędny sterownik CPU), powersave, performance.

Opracowany sterownik optymalizuje pracę komercyjnej wersji serwera HTTP NGINX+​. Przykładowe wyniki eksperymentów pokazano na Rys. 1.

Rys. 1: Porównanie efektywności sterowania procesorem serwera NGINX+ przy pomocy różnych sterowników

Sterownik NASK wykazuje istotną przewagę nad rozwiązaniem standardowo zaimplementowanym w jądrze systemu Linux.

  • umożliwił obsługę zapytań http z szybkością o 13.8% większą niż sterownik ondemand,
  • jednocześnie zużył o 8.3% mniej energii elektrycznej (o 26.8% mniej energii procesora) niż sterownik ondemand.

Bibliografia:

  1. Karpowicz, M; Arabas, P; Niewiadomska-Szynkiewicz, E, "Design and implementation of energy-aware application-specific CPU frequency governors for the heterogeneous distributed computing systems", Future Generation Computer Systems; 2016; Elsevier,
  2. Karpowicz, M; Arabas, P; Niewiadomska-Szynkiewicz, E,"Energy-aware multi-level control system for a network of Linux software routers: design and implementation", IEEE Systems Journal; strony 1-12; 2015; IEEE,
  3. Karpowicz, M; Malinowski, K, "On Efficient Resource Allocation in Communication Networks",SOFSEM 2007: Theory and Practice of Computer Science; tom 4362; strony 624-635; 2007; Springer.