Wydajność Xen vs. KVM

36

Co jest szybsze na tym samym sprzęcie, Xen lub KVM?

Próbuję wybrać technologię wirtualizacji do pracy, która zapewnia najlepszą wydajność.

Oto kilka punktów odniesienia, które znalazłem na ten temat: http://virt.kernelnewbies.org/XenVsKVM

Pokazują KVM jako zwycięzcę, ze znaczną różnicą w wydajności - co jest sprzeczne z ideą, że KVM jest hiperwizorem typu 2, a z definicji powinien być wolniejszy niż hiperwizory typu 1 (jak Xen) - lub przynajmniej to, co artykuły w Internecie mówią.

Masz pomysł na ten temat?

SyRenity
źródło
To porównanie wydaje się dość złe, ponieważ porównuje KVM + 1xVM i Xen + 1VM ... Jaki jest sens wirtualizacji, jeśli masz tylko maszynę wirtualną?
Antoine Benkemoun
KVM NIE jest hiperwizorem typu 2. Jest to zdecydowanie typ 1 i zdecydowanie bliżej sprzętu niż Xen. Tak więc, biorąc pod uwagę dokładnie te same warunki, KVM powinien działać lepiej, szczególnie w przypadku nowoczesnych sterowników
virtIO
Jeśli czytasz to w 2017 r. (Ktoś dokonał trywialnej edycji pytania), zdaj sobie sprawę, że to pytanie i jego odpowiedzi są OSIEM LAT . Krajobraz KVM kontra Xen jest teraz zupełnie inny.
thomasrutter

Odpowiedzi:

33

Benchmark porównuje jedynie szybkość natywnego systemu operacyjnego z jednym systemem-gościem. To nie jest test w prawdziwym świecie. Nie sądzę, bym przyłożył na to dużą wagę. Większość obozu KVM twierdzi, że Xen wymaga zbyt wielu przerwań i przeskoków między jądrem a przestrzenią użytkownika, ale z większości bardziej realistycznych testów, które widziałem, które tak naprawdę nie zostały zrealizowane, a Xen wydaje się być nieco szybszy niż KVM.

Przepraszam, nie mam linku do tego, aby wykonać to pod ręką. Ale powiem, że KVM szybko się poprawia i wydaje się, że szybko dogania zestaw funkcji i stabilność.

Co do tego, które podejście jest lepsze. Obóz w Xen będzie argumentował, że prawdziwy lekki hypervisor wymaga wirtualizacji, aby był bezpieczny i szybki. Xen również zaczyna być obsługiwany w oprogramowaniu układowym przez niektórych dostawców, co również jest miłe. Obóz KVM będzie argumentował, że KVM jest prostszy i że Linux może być dobrym hiperwizorem.

W końcu nadal nie jest jasne, który kierunek ostatecznie wygra. Xen z pewnością ma przewagę i ma już ładny udział w rynku. Ale nie ma go jeszcze w głównym jądrze. Mam nadzieję, że wkrótce to się zmieni i na pewno w ciągu ostatnich kilku miesięcy dużo się o tym mówiło na liście jądra. Red Hat jest teraz w obozie KVM i będzie promować platformę wirtualizacji. Red Hat Linux 5.4, który pojawi się wkrótce, będzie pierwszym, który go uwzględni. Prawdopodobnie przyciągnie to sklepy, które nie zostały jeszcze wdrożone ani nie zaangażowały się w platformę wirtualizacji.

Jeśli chodzi o narzędzia, zarówno Xen, jak i KVM używają libvirt i QEMU oraz powiązanych z nimi narzędzi. Dlatego dzielą wiele takich samych narzędzi, jak virt-manager.

Używamy Xen w pracy i działa dobrze dla nas. Ale patrzyłem na KVM z powodu problemów z przekierowaniem USB i PCI, których nie byłem w stanie rozwiązać za pomocą Xen. Nie jestem pewien, czy KVM jest w tym lepszy, ale chyba się dowiem, kiedy spróbuję. Jedną z rzeczy, które zauważyłem podczas badania moich problemów z USB, jest to, że dokumentacja KVM jest bardziej możliwa do oceny i uporządkowania w porównaniu do dokumentacji Xena. Ale nie ma idealnej platformy do wirtualizacji, więc musisz dowiedzieć się, co ma dla ciebie sens.

3dinfluence
źródło
Masz jakiś pomysł, jeśli to samo przyniesie w przyszłości? Ponieważ Redhat 5.4 będzie wkrótce dostępny z natywną obsługą KVM, chciałbym wiedzieć, czego nie będę musiał przełączać na KVM z Xen za pół roku. Dzięki.
SyRenity
1
Nie mogę przewidzieć, co przyniesie przyszłość. Ale żadna z tych platform nie zniknie. RedHat powiedział, że są zaangażowani we wspieranie Xen oraz KVM. Tylko czas pokaże, jak to się potoczy. Ale nie martwiłbym się koniecznością zmiany za 6 miesięcy. Być może za kilka lat pojawi się wyraźny lider na platformach wirtualizacji typu open source.
3dinfluence 18.07.2009
Ciekawe, że pamiętasz przejście na KVM w celu obsługi USB - po prostu musiałem pomyśleć o przeprowadzce z powodu braku obsługi USB 2.0! Z twojego postu domyślam się, że Xen nie będzie dużo lepszy.
jkp
1
@jkp Czekałem na wymianę kilku innych elementów naszej infrastruktury. Który właśnie został ukończony. Więc w nadchodzących tygodniach będę mógł przyjrzeć się bliżej KVM. Jednak w moim przypadku sprzęt nie obsługuje IOMMU (VTd). Nie jestem więc pewien, czy przejście na KVM pomoże. XEN wymaga obsługi IOMMU dla przekazywania pci. Ale KVM obsługuje przekazywanie elementów USB i PCI za pomocą libvirt. Mam więc nadzieję, że to zadziała bez IOMMU. W tej chwili pod Xenem jedyny sposób, w jaki wiem, że mogę przejść przez USB, to przejść przez kontroler USB PCI, ale ta informacja może być datowana w tym momencie.
3dinfluence
1
@ 3dinfluence: Myślę, że możesz źle zrozumieć, w jaki sposób implementowane jest wsparcie USB i PCI - libvirt sam nie robi żadnej z tych rzeczy, zapewnia jedynie sposób konfiguracji podstawowych funkcji hiperwizora VM. W tym przypadku możliwości zapewnia kombinacja modułów jądra KVM i kodu przestrzeni użytkownika Qemu.
jkp
7

Osobiście wybrałbym wirtualizację na podstawie użyteczności, wsparcia, niezawodności i przydatności dla używanych maszyn wirtualnych.

Szybkość przesyłania danych przez sieć Xen wydaje się być tak dobra, jak prawdziwy sprzęt, ale miałem też kilka bitew z Xen i vLansami i wieloma kartami Ethernet. Nie mam doświadczenia z KVM, ale sugerowałbym również rozważenie VMware ESX (i).

Michael Shaw
źródło
1
Wydajność IO serwera Vmware jest bardzo, bardzo zła. Jeśli musisz przejść do vmware, użyj esx.
ko-dos
6

FWIW: Odpowiedź zależy całkowicie od twoich potrzeb, teraz iw przyszłości.

Tak, wiem, że to nie jest pomocna odpowiedź. Niestety to prawda. Twój wybór wirtualizacji wpłynie prawie na wszystko, co robisz później, więc musisz zadać sobie kilka pytań.

(1) Czy różnica między 97% wydajności natywnej a 96% wydajności natywnej (liczby wyskubane z powietrza) jest dla Ciebie tak ważna?

(1a) Jeśli ktoś lepiej radzi sobie z dostępem do HD (co naprawdę oznacza, że ​​albo używasz świetnej bazy danych, albo nie możesz sobie pozwolić na dodatkową pamięć RAM), a drugi lepiej radzi sobie z siecią, która jest dla Ciebie ważniejsza ?

(2) Czy masz pewność, że korzystasz z narzędzi dostarczonych z którymkolwiek rozwiązaniem?

(3) Czy fakt, że jedno jest (rodzajem) rodzime dla najnowszych jąder Linuksa, a drugi nie, robi różnicę?

(3a) Czy teraz, czy byłeś ... eee ... czy kiedykolwiek będziesz musiał uruchomić inny system operacyjny w ramach wirtualizacji? To nie musi być Windows. Może to być FreeBSD, a nawet Haiku lub cokolwiek innego. (Xen prawdopodobnie wygrywa tutaj, ale sugeruję sprawdzić.)

Patrząc na ogólny obraz, widzę KVM jako odpowiedź Linuksa na strefy Solaris. (Wolałbym mieć strefy Solaris, ale widzę równoległość.) Widzę Xen jako dojrzałą technologię hypervisora ​​z obsługą wielu systemów operacyjnych, ale jeśli nie potrzebujesz wielu systemów operacyjnych, nie ma to większego znaczenia.

Szczerze mówiąc, nie możesz popełnić błędu w żaden sposób (biorąc pod uwagę powyższe zastrzeżenia). Wolę Xen, ponieważ pojechałem do Cambridge; ale wtedy, gdybym pracował dla RH, prawdopodobnie wolałbym KVM.


źródło
6

Bardzo interesujące informacje na ten temat można znaleźć w następującej prezentacji: Porównanie ilościowe Xen i KVM

Osoba, która to zrobiła, jest ekspertem od Xen, ale porównanie wydaje się dość uczciwe.

Antoine Benkemoun
źródło
Dzięki za prezentację, czytanie wydaje się, że podczas gdy Xen jest najlepszy w procesorze i sieciowym We / Wy, KVM jest najlepszy w HD IO. Ale czytanie tych liczb ( virt.kernelnewbies.org/XenVsKVM ) wydaje się, że KVM wygrywał ręce przy każdym porównaniu. Wiesz, gdzie jest prawda? :)
SyRenity
Wierzę, że moja prezentacja wydaje się bardziej realistyczna. Jednocześnie działa więcej niż jedna maszyna wirtualna. Protokół testowania wydaje się bliższy rzeczywistości.
Antoine Benkemoun
+1 Ciekawa prezentacja! Xen wydaje się mieć lepszą izolację.
Jonas
5

Mógłbym tu iść na całość, ale nie sądzę, że surowa wydajność jest najważniejszą miarą, jeśli chodzi o takie technologie.

Myślę, że użyteczność i interfejs są ważne, a także narzędzia wspierające niezawodną infrastrukturę. Wydaje mi się, że Xen ma o wiele bardziej solidny zestaw istniejących aplikacji, które go obsługują, niż KVM. Może tak nie być, ponieważ nie mam dowodów na poparcie tego.

Niezależnie od tego, co wybierzesz, zdecyduj, które rozwiązanie jest dla Ciebie najlepsze, i spójrz na cały pakiet, a nie tylko na czystą wydajność.

Matt Simmons
źródło
Musisz rzucić okiem na RHEV - zarządzanie jest bardzo proste i przyjazne dla użytkownika.
dyasny
2

Wiele trudności lub łatwości konfiguracji KVM zależy od dystrybucji. Wybór dystrybucji skoncentrowanej na Xen ułatwi Xen. Wybór dystrybucji skoncentrowanej na KVM ułatwi KVM.

Pytanie o narzędzia jest nieco nieistotne, ponieważ oba używają libvirt. Oznacza to, że w większości przypadków używasz tych samych narzędzi zarządzania.


źródło
1

Pod koniec 2017 roku Amazon, który wcześniej był największym użytkownikiem Xen, ogłosił, że będzie używać KVM dla wszystkich nowych typów instancji C5 . Według mojej najlepszej wiedzy, tylko dostawca chmury SoftLayer pozostaje jako duży użytkownik Xen. Linode zmienił się w 2015 roku i zgłosił znaczną poprawę wydajności .

Trudno jest znaleźć realistyczne i aktualne porównanie wydajności, ale wydaje się, że nie ma tak dużej luki między oboma rozwiązaniami, jak mogłoby się wydawać. W zależności od przypadku użycia Xen może być jeszcze szybszy. KVM ma inne zalety, które są częścią jądra Linuksa i są uwzględnione przez RedHat. Na przykład ta odpowiedź wyjaśnia, dlaczego Google wybiera KVM dla Google Compute Engine.

Mimo to fakt, że prawie wszyscy dostawcy chmury, zwłaszcza Google i Amazon, wybierają KVM zamiast Xen, jest mocnym argumentem, że w przypadku typowych obciążeń KVM jest bardzo dobrym wyborem pod względem wydajności.

Philipp Claßen
źródło
Uwaga: Amazon używa zmodyfikowanej wersji KVM, a nie macierzystej. I nie powiedziałbym, że mają typowe obciążenia, prawdopodobnie mają naprawdę ciężkie i nietypowe obciążenia,
imho
@ALex_hha Miałem na myśli to, że muszą wybrać technologię, która najlepiej działa w aplikacjach, które będą działać ich klienci. W tym sensie muszą znaleźć konfigurację, która jest szybka w różnych przypadkach użycia. Ale zgadzam się, że istnieją inne scenariusze, takie jak systemy wbudowane, w których Xen może być porównywany bardziej korzystnie.
Philipp Claßen