Linux bardziej "ekologiczny" niż Windows Server 2008

Konsumpcja energii przez sprzęt komputerowy rośnie bardzo szybko, zarówno w dużych, jak i małych firmach. Przy ciągle rosnących cenach energii, mechanizmy obniżające pobór mocy "dostarczanej" systemom operacyjnym mogą i powinny odgrywać znaczącą rolę w ogólnym planie oszczędności zużycia energii w centrum obliczeniowym. W naszych testach zużycia energii, wykonanych na tym samym sprzęcie, Red Hat Linux wykazał o ok. 12% mniejszy pobór mocy niż Windows Server 2008.

Konsumpcja energii przez sprzęt komputerowy rośnie bardzo szybko, zarówno w dużych, jak i małych firmach. Przy ciągle rosnących cenach energii, mechanizmy obniżające pobór mocy "dostarczanej" systemom operacyjnym mogą i powinny odgrywać znaczącą rolę w ogólnym planie oszczędności zużycia energii w centrum obliczeniowym. W naszych testach zużycia energii, wykonanych na tym samym sprzęcie, Red Hat Linux wykazał o ok. 12% mniejszy pobór mocy niż Windows Server 2008.

W testach użyto serwerów z wielordzeniowymi procesorami Intel Xeon (m.in. HP DL360G5), które mogą obsługiwać mechanizm "przepustnicy" CPU (spowalnianie zegara). Jednak w niektórych przypadkach BIOS serwerów i firmware musiały być dodatkowo uaktualnione w celu poprawnej obsługi tego mechanizmu.

W testach użyto serwerów z wielordzeniowymi procesorami Intel Xeon (m.in. HP DL360G5), które mogą obsługiwać mechanizm "przepustnicy" CPU (spowalnianie zegara). Jednak w niektórych przypadkach BIOS serwerów i firmware musiały być dodatkowo uaktualnione w celu poprawnej obsługi tego mechanizmu.

Według Environmental Protection Agency, w roku 2006 tylko w samych Stanach Zjednoczonych centra danych zużyły 61 mld kWh energii elektrycznej, co oznacza dwukrotny wzrost w porównaniu z rokiem 2000. Na rok 2011 EPA prognozuje kolejne podwojenie zużycia energii. Takie statystki zachęcają firmy do poszukiwania sposobów oszczędzania energii i wyzwalają liczne inicjatywy typu "green IT".

W przeprowadzonych testach sprawdzano pobór mocy serwerów powiązany z pracą systemów operacyjnych Linux i Windows, w celu określenia, który z tych systemów jest bardziej "ekologiczny".

Testy wskazały na Linuksa, jako zwycięzcę w tej rywalizacji. Należy jednak odnotować, że wyniki są w pełni uwarunkowane środowiskiem testowym i w innych warunkach mogą odbiegać od uzyskanych.

Testom poddano Windows Server 2008 Enterprise Edition, Red Hat Enterprise Linux (RHEL) 5.1 i SUSE Enterprise Linux 10 SP1, wykorzystując cztery popularne serwery kasetowe: po jednym Dell i IBM oraz dwa HP.

Różnorodne ustawienia, dopuszczane zarówno przez Windows jak i Linux, pozwalające na przełączanie się pomiędzy najbardziej oszczędnym (energetycznie) trybem pracy a najwyższą wydajnością, mogą mieć pewien wpływ na ogólną konsumpcję energii przez serwer. Jednak przydatność tych ustawień będzie się także zmieniać z powodu obciążeń, jakie nakłada się na poszczególne serwery i używanie popularnych hypervisorów maszyn wirtualnych, obsługujących wiele instancji systemów operacyjnych na tym samym serwerze fizycznym.

Podczas testów skonstatowano, że mechanizm "przepustnicy" CPU (throttle-back) - główna technika wykorzystywana przez systemy operacyjne do wspomagania optymalizacji poboru mocy przez serwer - wymaga nowego firmware i uaktualnionych sterowników, które specjalnie wspomagają ten mechanizm. Jedynie IBM x3350 i HP DL360G5 dostarczono gotowe do optymalizacji poboru mocy. Serwery HP DL160 i Dell 1950 wymagały kilku uaktualnień podczas testowania, w celu dostosowania mechanizmu przepustnicy CPU do Windows 2008 i Linux.

Oszczędzanie energii przez CPU

Bez względu na system operacyjny - Windows czy Linux - podstawowa forma oszczędzania energii związana jest z dławieniem CPU, pozwalającym na "odpoczynek" serwera podczas okresu bezczynności. Kolejną, jest obniżanie obrotów dysku, które jest głównym ustawieniem oszczędzania energii w serwerach Windows.

Desktopowe dystrybucje Linuksa mogą używać ACPI (Advanced Configuration and Power Interface), który zaprojektowano z myślą o laptopach a nie serwerach, jednak mechanizm ten nie jest zaimplementowany w testowanych systemach serwerowych Red Hat i SUSE.

Procesory dostarczane przez Intela, AMD i Via Technology oraz innych dostawców serii x86, w ostatnich trzech latach zostały specjalnie zaprojektowane do przełączania pomiędzy stanem najwyższej wydajności (i tym samym o najwyższym poborze mocy) i spoczynkowym (oszczędzającym energię).

Serwery używane w testach dostarczono z wielordzeniowymi procesorami Intel Xeon, które mogą obsługiwać mechanizm przepustnicy (spowalnianie zegara CPU), ale tak jak już wspomniano wcześniej, BIOS serwerów i firmware musiały być dodatkowo uaktualnione w celu poprawnej obsługi tego mechanizmu. IBM x3350 i HP DL160 zawierały pojedyncze cztero-rdzeniowe CPU (różne modele), podczas gdy Dell 1950 i HP DL360G5 dwa czterordzeniowe procesory.

Zmniejszenie "obrotów" CPU może zaoszczędzić trochę energii, ale trzeba pamiętać, że pozostałe układy systemu pozostają włączone, kontynuując pobór mocy, ponieważ system musi być gotowy do obsługi żądań aplikacji, użytkowników i sieci, a także zleceń innych usług peryferyjnych. Ten minimalny poziom poboru mocy jest tym, co można pomierzyć w stanie spoczynku (czasami określanym jako "minimalny stan gotowości").

System operacyjny powinien pozwalać CPU na zmniejszanie obrotów do tego minimalnego stanu gotowości, uważanego z perspektywy poboru mocy za "zielony", i oba systemy - Linux i Windows - to umożliwiają. Aczkolwiek na horyzoncie pojawia się nowa wersja Linuksa, która może okazać się lepsza w zakresie charakterystyk obniżania poboru mocy. Zegarowego systemu przerwań (taktowanie zegarem) systemy operacyjne używają do działań na kolejkach i jest on tradycyjnie ustawiany na 1000 takich przerwań na sekundę, z których każde jest obsługiwane jako przerwanie CPU. Istnieje już wersja "tickless" jądra Linux, która wysyła przerwania do CPU rzadziej, ale nie była ona składową testowanych dystrybucji Linuksa. Takie dodatki są planowane w przyszłych wersjach Red Hat i SUSE.

Wybór właściwego odcienia zieleni

Serwery zużywają energię nawet podczas stanu bezczynności

Serwery zużywają energię nawet podczas stanu bezczynności

Przed ustawieniem i uruchomieniem testów rozmawiano z przedstawicielami firm Novell, Red Hat i Microsoft na temat ich inicjatyw "green IT". Poproszono także IBM, HP i Dell o dostawę serwerów, które z ich punktu widzenia reprezentują największy potencjał w tym zakresie, aczkolwiek pomiar poboru mocy przez elementy sprzętowe nie był przedmiotem testów. Na rynku istnieje wiele serwerów zapewniających efektywność zasilania oraz innych rozwiązań oszczędności energii w zakresie sprzętu, często używających specyficznych, firmowych API zarządzania sprzętem, które nie mają związku z systemem operacyjnym. Jednak testujący nie byli zainteresowani sprzętowym wsparciem, ponieważ celem było określenie konsumpcji energii z punktu widzenia systemu operacyjnego.

Tryby oszczędzania energii Windows Server 2008 i Windows Vista są w zasadzie identyczne. Dopuszczają one, aby system przechodził do stopniowanych stanów "odpoczynku" (zasadniczo przez ograniczanie poboru mocy przez CPU i hibernację dysków). Tryby te są zgodne z Advanced Configuration and Power Interface wersji 3, która zazwyczaj jest bardziej związana z komputerem osobistym, niż z serwerem aplikacyjnym.

W windowsowym planie oszczędzania energii istnieją trzy stany - "Power Savings", "Balanced" i "High Performance" - wybierane z opcji zasilania w panelu sterowania Windows. Opcje te mogą być także wymuszane za pośrednictwem polityk grupowych Active Directory. Dostępny jest również program powercfg.exe wspomagający ustawianie bardziej szczegółowych polityk wydajności, ale liczba kombinacji, jakie zapewnia to narzędzie, była poza zakresem tego testu.

W czasie testów wybrano plan zasilania Windows Power Savings i High Performance, ponieważ oferują one najbardziej porównywalne parametry poboru mocy dostępne w Linux - tryb wydajności przy "otwartej przepustnicy" i tryb racjonalnej oszczędności energii przy małych opóźnieniach.

Wybór opcji oszczędzania energii dostępny w jądrze Linux 2.6 dostarczanym z RHEL 5.1 i SUSE Enterprise Linux 10, koncentruje się na zdolności dławienia zegara CPU poprzez moduł jądra o nazwie cpufreq. Tryby oszczędzania, nazywane "governors", są tu oficjalnie oznaczane jako "performance", "ondemand", "powersave" i "conservative". Istnieje też piąty governor, ale ukierunkowany na dyskretne procesy rządzone przez system operacyjny.

Testujący mieli możliwość wstępnego zbadania wszystkich serwerów we wszystkich trybach oszczędzania energii, które wspiera moduł cpufreg, w celu określenia, który z nich będzie najbardziej odpowiedni do profilu testu. Wybrano performance dla testów "otwartej przepustnicy" i ondemand dla trybu "oszczędzania energii".

Odrzucono tryb conservative, ponieważ wprowadza on niepotrzebne opóźnienia do pracy serwera. Odrzucono także tryb powersave, gdyż spowalnia procesor i nie jest reprezentatywny dla tego rodzaju testów (nie ma zbyt wielu sytuacji, gdzie dławienie ciągłe ma sens, z wyjątkiem okresowych aplikacji pracujących w trybie wsadowym i innych przypadkach, gdzie po prostu można czekać dłużej na pożądany rezultat działania aplikacji).

Zarówno moduł jądra Linuksa - cpufreq, jak i ustawienia zasilania Windows mogą być zmieniane dynamicznie w razie potrzeby, aczkolwiek nie wykorzystywano tego podczas testów.

Wybrano dwa testy do pomiaru konsumpcji energii. Pierwszy to test serwera biernego (w stanie spoczynku), w którym każdy system operacyjny, wraz ze sprzętem serwerowym, pozostawał bezczynny przez cztery godziny w obu trybach - performance (duża wydajność - wysokie zużycie energii) i power savings (oszczędzanie energii) dla każdego systemu operacyjnego. Drugi, to test aktywny - pobór mocy pod obciążeniem, w ramach którego wysyłano ciągły strumień poczty elektronicznej do każdego serwera i systemu operacyjnego w czasie czterogodzinnego testu w obu profilach: performance i power savings.

Test aktywny wykorzystywał skrypt zapewniający ciągłe wysyłanie poczty elektronicznej. Dla obu dystrybucji Linuksa używano sendmail/procmail jako serwera SMTP z tysiącem użytkowników. Na Windows 2008 Enterprise Server Edition zainstalowano natomiast Microsoft Exchange Server 2007, importując tych samych 1000 użytkowników i "zasilając" ich w ten sam sposób - używając skryptów generujących pocztę. Pozwolono systemowi operacyjnemu i aplikacji na wybranie liczby używanych rdzeni w sposób domyślny.