Zgodnie z obietnicą, ciąg dalszy wrażeń z zabawy XenServerem. Pierwsza rzecz, jaką postanowiłem przetestować, to wydajność maszyn wirtualnych z przypisanymi 8 wirtualnymi procesorami - rzecz, której konkurencja (Hyper-V i ESX) póki co nie potrafi - oraz overcommitment procesorów. Kilka ciekawych obserwacji...
Wykonałem po kolei ten sam zestaw testów - przy pomocy inżynierskiej edycji narzędzia SiSoftware SANDRA zmierzyłem wydajność procesora, podsystemu pamięci, dysków i systemu plików. Przeprowadziłem testy na tym samym sprzęcie (2x Xeon E5405, 8 GB RAM, dyski SAS 10k) przy pomocy Windows Server 2008 Enterprise Edition zainstalowanym po kolei:
- na maszynie fizycznej bez roli Hyper-V
- na maszynie wirtualnej Xen z czterema procesorami
- na maszynie wirtualnej Xen z ośmioma procesorami
- na maszynie wirtualnej Xen z ośmioma procesorami
przy włączonej obok drugiej w stanie IDLE
- na maszynie wirtualnej Xen z ośmioma procesorami
przy włączonej obok drugiej obciążonej testem
Tabelka poniżej pokazuje wyniki tych testów...
Zgodnie z obietnicą, kilka obserwacji i wniosków. Po pierwsze, wydajność obliczeniowa maszyny wirtualnej z 8 procesorami jest bardzo zbliżona do fizycznego urządzenia z dwoma procesorami po cztery rdzenie każdy - narzut związany z wirtualizacją jest w przypadku XenServera niewielki. Co jednak bardziej interesujące, dodanie kolejnej wirtualnej maszyny z kolejnymi 8 rdzeniami, a więc zwirtualizowanie dwukrotnie większej liczby rdzeni niż fizycznie w serwerze, nie powoduje znacznych, negatywnych skutków wydajności.
W przypadku, kiedy druga maszyna nie jest obciążona, spadku wydajności nie ma prawie wcale. Po jej obciążeniu moc obliczeniowa rozdzielana jest przez hypervisor po połowie przy praktycznie zerowym narzucie, którego możnaby oczekiwać w takim scenariuszu - Microsoft np. zaleca, by łączna liczba rdzeni przypisanych do maszyn wirtualnych nie przekraczała liczby fizycznych rdzeni w serwerze. W przypadku XenServera wygląda na to, że problem ten można pominąć - przynajmniej jeśli overcommitment nie jest duży (pytanie, czy równie mały narzut utrzymałby się przy dodawaniu kolejnych maszyn, niemniej 16 wirtualnych rdzeni na 8 fizycznych to już niemało).
Był jeden zgrzyt - jedna z maszyn zrestartowała się podczas testu jednoczesnego obciążenia CPU obydwu maszyn wirtualnych. Problem wystąpił dwa razy pod rząd, ale nie powtórzył się już ani razu przy kolejnych testach - zagadkowa sprawa, ciężko powiedzieć co mogło być powodem tej niestabilności (może sklonowanie maszyny, a nie instalacja drugiej od zera?). Mimo, że nie powtórzyła się później pozostawia pewien niesmak.
Warto przy tej okazji zauważyć, że Xen - podobnie jak Hyper-V i ESX - wirtualizuje fizyczne rdzenie w ten sposób, że przez maszynę wirtualną widziane są one jako osobne procesory. Zatem by obsłużyć 8 wirtualnych CPU wirtualizowanych na bazie dwóch czterordzeniowych fizycznych procesorów potrzebujemy w przypadku Windows Server 2008 w edycji Enterprise, wersja Standard pokaże 8 procesorów ale wykorzysta jedynie cztery ze względu na ograniczenia licencyjne.
Inna ciekawa obserwacja dotyczy podsystemu pamięci - jej wydajność w maszynie wirtualnej z 8 procesorami jest nieco większa niż w maszynie z czterema, ale co ciekawsze przy jednoczesnym obciążeniu obydwu maszyn wirtualnych pozostaje na podobnym poziomie.
No i w końcu, z trzech testowanych komponentów (procesor, pamięc i dysk) to właśnie dysk przy jednoczesnym funkcjonowaniu dwóch maszyn wirtualnych okazał się najsłabszym ogniwem. Wykorzystanie jednego fizycznego urządzenia lub macierzy do jednoczesnej obsługi wielu aktywnych dyskowo maszyn wirtualnych nie jest dobrym pomysłem, widać że spadek wydajności jest znaczny i narzut związany z koniecznością jednoczesnej obsługi wielu wywołań jest spory. Niemniej, interesującą obserwacją może być fakt, że o ile spadek wydajności samego dysku jest spory, o tyle spadek wydajności systemu plików jest już nieco mniejszy - pozytywna informacja.
Czas teraz na to, by sprawdzić jak z podobnymi zadaniami poradzą sobie Hyper-V oraz ESX :-) Czekam też na sugestie, jakie inne testy poza Sandrą chcielibyście, by przeprowadzić.
PS. Przy okazji, zmieniamy nieco formułę działu "Moim zdaniem" tak, by przypominała formę bloga. Adres takiego wirtualnego bloga agregującego przykładowo moje nieuczesane ;) wypowiedzi tutaj to www.techit.pl/MoimZdaniem/TomekBryja.aspx, dokąd trafić można także przez przekierowanie ze starego, zlikwidowanego bloga na bryja.net/blog. Analogicznie działa to dla innych autorów. Wkrótce postaramy się dodać do każdego takiego pseudobloga osobne kanały RSS (w tej chwili wszystkie wypowiedzi trafiają do jednego worka z aktualnościami na TechIT).