Wirtualizacja VMware vs VirtualBox, pytanie o AMD-V i binary transition

Słowem wstępu, wszystko robię na desktopie, nie prawdziwym serwerze, ale mimo wszystko zagadnienie jest bardziej serwerowe.

Na VirtualBox postawiłem Ubuntu Server 14.04 z PHP, Apache i MariaDB aby przetestować wydajność 4 kombinacji oprogramowania. Okazało się, że na 1 wątku w wielu testach działało prawie 2 razy szybciej “benchmark” działał na 1 wątki aniżeli na 2.

Uruchomiłem więc y-cruncher na hoście i na wirtualnych maszynach, zarówno na VMware jaki i na VirtualBox. Okazuje się, że standardowo na VMware wątkowość działa dużo efektywniej niż na VB.

Natomiast przy VMware zmianie trybu wirtualizacji z auto (czyli AMD-v?RVI) na Binary transition osiągałem już tak samo słabe wyniki jak na VirtualBoxie.

Nie robiłem nigdy testów wydajnościowych, ale hyperwizory typu 2 nie są tak wydajne jak typ 1. Podejrzewam, że tu system ogranicza zasoby. Zresztą na procku 4-rdzeniowym odpalisz tylko 2 rdzenie. Podejrzewam, że na serwerze nie będziesz używał VBoksa czy VMWare Workstation, więc przetestuj to na Xen/XenServer, KVM, VMWare czy Hyper-V (Hyper-V Client obsługuje tylko 32-bitowe systemy, nie wiem jak Hyper-V Server).

Tylko host ma dużo wolnych zasobów, 2 rdzenie z 6 (3 modułów) to raczej duży zapas. I czemu tylko 2 rdzenie z 4? Mówisz o KVM?

Dziwne jest to, że VB wymaga do użycia AMD-V, ale jakby tego nie wykorzystywał.

Myślisz, że można zmienić jądro z *-default na *-kvm na normalnie używanym PC bez żadnego uszczerbku?

Chodziło mi o połowę zasobów. Ja na 2 rdzenie i 4 wątki, mogę przypisać do stabilnego działania max 2 vCPU na VBoksie.

Co masz na myśli? Nie musisz zmieniać jądra, KVM to tylko moduł. Nie wiem jak na AMD (będę musiał przetestować), ale na Intelu VBox wykorzystuje u mnie VT-x, inaczej nie odpaliłbym XenServer na VBoksie (bez VT-x XenServer w wirtualnym środowisku się nie uruchomi).

przeczytalem pare zdan, hm… 

korzystalem z Debiana na serwerze (teraz), kiedys Ubuntu Serwer.

 

Jezeli chodzi o wydajnosc, stabilnosc, bezpieczenstwo - to wygrany jest tylko jeden i nazywa się FreeBSD.

Korzystam póki co do swoich benchmarków i do innych testów, które sam wymyślę.

Pytanie brzmi - dlaczego AMD-V i VT-x działa na VB tak wolno jak tryb binarny na VMware?

Ktoś śledzi to co Oracle robi z VB? Jakiś bug? Coś trzeba mieć w systemie, aby nie udawał, że korzysta z technologii wirtualizacji CPU?

jak masz gdzies swierze gentoo zainstalowane, to pokaz wyniki komend:

 

top

To są serwery u różnych klientów i nie mam zamiaru niczego Ci udowadniać. Proponuję zakończyć już ten offtopic, bo kolega nie pytał o wydajność systemów, lecz pyta o to dlaczego u niego dany hypervisor zachowuje się tak, a nie inaczej.

Zainstaluj sobie Gentoo, to będziesz wiedział. Ten system stawia się od podstaw, więc masz nad nim pełną kontrolę. EOT.

PS świeże, nie świerze i na forum piszemy w języku polskim, z użyciem polskich liter, więc popraw swoje posty, jeśli nie chcesz żeby wylądowały w koszu.

Czyli sumując tak:

Prawdziwe serwery chodzą na lepszym hyperwizorze typu 1. Wszystko dostosowuje się pod dane rozwiązanie.

Osobiście nie mam dostępu do serwerów produkcyjnych, mogę mieć najwyżej wpływ na oprogramowanie. Natomiast do testów użyłem maszyn wirtualnych na desktopie z hy0erwizorem typu 2, aby host miał jak najmniejszy wpływ na wydajność i aby zasymulować różnice w 4 kombinacjach oprogramowania (PHP+MariaDB+Apache w konkretnych zastosowaniach).

Założmy, że VirtualBox z jakiegoś powodu nie obsługuje AMD-V/VT-x, użyję do tego VMware.

I teraz pytanie - czy jeśli różnice w testach (głównie czas wykonywania operacji) między kombinacją A a B będą na VMware wynosiły 20%, to czy na podobne różnice można liczyć na produkcyjnych (KVM, HyperV, cokolwiek typu 1) serwerach ta różnica w tej samej kombinacji będzie wynosiła ok 20%?

I jeszcze jedna rzecz - VMware trochę inaczej rezerwuje pamięć niż VirtualBox.

We VB gdy uruchomię 4 mazyny po 1 GB to zajmie mi w hoście od razu 4 GB (pamięć rezydenta+współdzielona bodajże).

Natomiast we VMware nie pokazuje tych 4 GB jako zajęte (zajęte może jest z 400 MB więcej), natomiast system zachowuje się, tak jakby ta pamięć była zajęta. Czyli tak jakby VMware fizycznie zajmowało jakiś obszar pamięci.

Jak takie coś się nazywa i jak to zwykle wygląda na hyperwizorze typu 1?

Możesz to rozwinąć? Bo szczerze to nie spotkałem się z brakiem obsługi x64 na hyper-v

Jeśli odpalasz to na Linuksie (pytałeś o jajko), to możesz spokojnie odpalić KVM, nie musisz mieć serwera produkcyjnego. Xen też możesz spokojnie odpalić na kompie. Jeśli to nie komputer codziennego użytku, to możesz potestować XenServer od Citrix.

Każdy producent hypervisora robi to inaczej, więc róznicze w wydajności nie dziwią, a jak to się nazywa, o to co pytasz, to nie wiem.

Jak pisałem, nie wiem jak Hyper-V (server), ale jak odpalam Hyper-V Client na Windows 8.1 Pro, to mogę uruchamiać tylko 32-bitowe systemy (procesor AMD A10 - z Hyper-V nie mam żadnego doświadczenia, więc jak dowiem się od Ciebie czegoś ciekawego, to będę wdzięczny).

Z nazwą hyper-v client się nie spotkałem póki co. Hyper-v na Win2k12 server czy Win 8.1 to to samo, czyli wirtualizator pierwszego poziomu (te same biblioteki/exe, te same usługi).

Case z uruchamianiem 32bit systemów gościa miałby sens w przypadku korzystania z hyper-v w systemie 32bit.

U Ciebie może być sprawcą procek AMD, bo ogólnie na 64 windows z zainstalowaną usługą Hyper-V, można uruchamiać 32 jak i 64 bitowe systemy operacyjne. Niestety nie mam możliwości sprawdzenia tego (brak maszyn z AMD). Może brakuje mu jakiejś technologii?

Hyper-V Client, to hypervisor na Windowsach klienckich. Różni się tym, że nie ma pewnych funkcji dostępnych w serwerowych Windowsach.

https://technet.microsoft.com/en-us/library/hh857623.aspx

No widzisz @roobal, też się czegoś nauczę ;).

The Remote FX capability to virtualize GPUs - działa bez problemu

Live migration of virtual machines from one host to another - nie ma bo i po co (tyczy się klastrów)

Hyper-V Replica - nie ma, bo i po co

Virtual Fibre Channel - działa

32-bit SR-IOV networking - przydatne przy klastrach i Virtual Machine Manager.

Shared .vhdx - nie ma, czasami by się przydało, ale da się to obejść.

Tak czy siak, z mojego punktu widzenia (administracja + oprogramowaie hyper-v w .net), to jest dokładnie ten sam produkt, pod kątem WMI Api jak i usług. Jeśli zgadza się build windows 2012 R2 i Win 8.1 to biblioteki możesz sobie przenosić i będzie działać.