Odkryłem, że nie ma prostej i absolutnej odpowiedzi na pytania takie jak twoje. Każde rozwiązanie do wirtualizacji zachowuje się inaczej w określonych testach wydajności. Ponadto testy, takie jak przepustowość we / wy dysku, można podzielić na wiele różnych testów (odczyt, zapis, przepisywanie, ...), a wyniki będą się różnić w zależności od rozwiązania i od scenariusza do scenariusza. Dlatego wskazanie jednego rozwiązania jako najszybszego we / wy dysku nie jest trywialne, i dlatego nie ma absolutnej odpowiedzi na etykiety takie jak koszty ogólne we / wy dysku.
Staje się bardziej skomplikowany, gdy próbujesz znaleźć związek między różnymi testami porównawczymi. Żadne z testowanych przeze mnie rozwiązań nie miało dobrej wydajności w testach mikrooperacyjnych. Na przykład: W maszynie wirtualnej jedno pojedyncze wywołanie „gettimeofday ()” zajęło średnio 11,5 razy więcej cykli zegara niż na sprzęcie. Hiperwizory są zoptymalizowane do zastosowań w świecie rzeczywistym i nie działają dobrze w przypadku mikrooperacji. Może to nie stanowić problemu dla Twojej aplikacji, który może lepiej pasować do aplikacji w świecie rzeczywistym. Rozumiem przez mikrooperację każdą aplikację, która kończy mniej niż 1000 cykli zegara (w przypadku procesora 2,6 GHz 1000 cykli jest zużywanych w 385 nanosekundach lub 3,85e-7 sekund).
Przeprowadziłem szeroko zakrojone testy porównawcze czterech głównych rozwiązań konsolidacji centrów danych w architekturze x86. Zrobiłem prawie 3000 testów porównujących wydajność maszyn wirtualnych z wydajnością sprzętową. Nazwałem „narzut” różnicą maksymalnej wydajności mierzonej w maszynach wirtualnych z maksymalną wydajnością mierzoną sprzętowo.
Rozwiązania:
- VMWare ESXi 5
- Microsoft Hyper-V Windows 2008 R2 SP1
- Citrix XenServer 6
- Red Hat Enterprise Virtualization 2.2
Systemy operacyjne gościa:
- Microsoft Windows 2008 R2 64 bity
- Red Hat Enterprise Linux 6.1 64 bity
Informacje o teście:
- Serwery: 2 x Sun Fire X4150 każdy z 8 GB pamięci RAM, 2 x procesor Intel Xeon E5440 i cztery porty Gigabit Ethernet
- Dyski: 6x 136 GB dyski SAS przez iSCSI przez gigabit Ethernet
Oprogramowanie testowe:
Procesor i pamięć: Test porównawczy Linpack dla 32 i 64 bitów. Jest to procesor i pamięć bardzo intensywna.
Dysk I / O i opóźnienie: Bonnie ++
Network I / O: Netperf: TCP_STREAM, TCP_RR, TCP_CRR, UDP_RR i UDP_STREAM
Mikrooperacje : rdtscbench : wywołania systemowe, komunikacja między procesami
Średnie są obliczane za pomocą parametrów:
Procesor i pamięć: ŚREDNIA (HPL32, HPL64)
Disk I / O: AVERAGE (put_block, rewrite, get_block)
Network I / O: AVERAGE (tcp_crr, tcp_rr, tcp_stream, udp_rr, udp_stream)
ŚREDNIE operacje (getpid (), sysconf (), gettimeofday (), malloc [1M], malloc [1G], 2pipes [], simpleemath [])
W moim scenariuszu testowym, korzystając z moich danych, średnie wyników czterech rozwiązań wirtualizacyjnych są następujące:
Narzut warstwy VM, gość Linux:
Procesor i pamięć: 14,36%
Sieciowe We / Wy: 24,46%
Dysk I / O: 8,84%
Opóźnienie dysku do odczytu: 2,41 razy wolniejsze
Czas wykonywania mikrooperacji: 10,84 razy wolniejszy
Narzut warstwy VM, gość Windows:
Należy pamiętać, że te wartości są ogólne i nie odzwierciedlają scenariusza konkretnych przypadków.
Przeczytaj pełny artykuł: http://petersenna.com/en/projects/81-performance-overhead-and-comparative-performance-of-4-virtualization-solutions