Jakich funkcji powinienem szukać w laptopie w przypadku obciążeń wymagających dużej wirtualizacji?


19

Większość mojego rozwoju wykonuję w VMware Workstation (obecnie wersja 7). Niestety, na moim laptopie z 4 GB pamięci RAM, OCZ Vertex 2 240 GB i Core 2 Duo T9550 (2,66 GHz) robi przestępstwa powoli, gdy na raz działa więcej niż jedna maszyna wirtualna (co biorąc pod uwagę, że byłem większość czasu zajmuje ostatnio tworzenie wielu serwerów).

Wiem, że istnieją niektóre procesory, które (na przykład) mają określone funkcje przyspieszające wirtualizację, i myślę, że są pewne funkcje mikroukładów, które przyspieszają dostęp do pamięci specjalnie dla obciążeń wirtualizacyjnych, ale nie jestem pozytywnie nastawiony do żadnego z nich, i nawet jeśli istnieją, nie jestem pewien, czy są dostępne na laptopach.


1
Wydaje mi się to rekomendacją zakupową.
Wuffers

4
@Mark: Nie, rekomendacje dotyczące zakupów wymagają konkretnego produktu. Na przykład zobacz superuser.com/questions/254068/... - pytanie o to, czego szukać, nie jest rekomendacją zakupową, ale pytaniem o konkretny produkt jest.
Billy ONeal

Przydatne i interesujące pytanie z pytaniem o procesory i konfigurację do wirtualizacji, mające zastosowanie do szeregu produktów i producentów. Warte zatrzymania. +1
JRobert

Odpowiedzi:


9

Większość układów ma teraz rozszerzenia do wirtualizacji (Intel-VT lub AMD-V). Z własnego doświadczenia (VirtualBox) mogę stwierdzić, że niektóre funkcje - zwłaszcza zagnieżdżanie stronicowania - są bardzo pomocne; na przykład zagnieżdżanie stronicowania znacznie zmniejsza czas uruchamiania Ubuntu (z 45 do 15 sekund).
(Edycja: Wydaje się, że „zagnieżdżanie stronicowania” jest również nazywane „tłumaczeniem adresu drugiego poziomu” lub „rozszerzonymi tabelami stron” [EPT].)

To zależy również od tego, jaki jest twój rozwój. Próbowałem skompilować kod źródłowy Chromium na Core i5 (żadnych maszyn wirtualnych, na prawdziwym komputerze), a 4 GiB pamięci RAM nie wystarczyło - 6 GiB było prawie wystarczające, ale nadal potrzebowałem ~ 1 GiB pliku strony, aby zapobiec wyczerpaniu się pamięci. (Zwykle wyłączam plik strony.) Wykonywanie tego na maszynie wirtualnej najwyraźniej nie wchodziło w rachubę w moim systemie, głównie z powodu pamięci RAM (ale także procesora). Pamięć RAM jest więc bardzo ważna, szczególnie w przypadku 2 maszyn wirtualnych, chociaż zależy to od tego, co robisz.

Inną funkcją, która może pomóc, jest posiadanie prawdziwego dwurdzeniowego (lub więcej) laptopa, z jedną maszyną wirtualną działającą na jednym rdzeniu, a drugą na innym rdzeniu. Nie przetestowałem jednak tego wpływu osobiście, ponieważ zwykle uruchamiam tylko jedną maszynę wirtualną w dowolnym momencie.


Czy mogę coś zrobić, aby sprawdzić, czy procesor obsługuje zagnieżdżanie stronicowania?
Billy ONeal

@Billy: Powiedziałbym, że pobieram VirtualBox i sprawdzam, czy pole wyboru jest tam włączone. :-) Postaram się jednak znaleźć lepsze rozwiązanie, ponieważ prawdopodobnie możesz to przetestować za pomocą cpuidinstrukcji.
Mehrdad

@Billy: Niestety wydaje się, że trudniej jest wykryć EPT dla procesorów Intel niż procesorów AMD; musisz przeczytać rejestr specyficzny dla modelu. Wydaje się, że utworzenie maszyny wirtualnej w VirtualBox, a następnie próba sprawdzenia pola zagnieżdżonego stronicowania jest prawdopodobnie najłatwiejsza. (Szybkie spojrzenie na Wikipedię mówi jednak, że procesory oparte na Nehalem, a później powinny to obsługiwać).
Mehrdad

Czy znasz kogoś z układem obsługującym EPT, który może sprawdzić coś takiego jak CPU-Z? (Nie jestem pewien, czy CPU-Z to pokazuje - dla tego układu nie ma EPT, chociaż pokazuje VT-x)
Billy ONeal

@Billy: Nie, CPU-Z nie pokazuje tego na moim laptopie. : \ Nawet strona Intela tego nie pokazuje. Dziwne ...
Mehrdad

12

Myślę, że twój problem ma więcej wspólnego z pamięcią RAM niż z procesorem. Jeśli umieścisz więcej pamięci RAM w swoim laptopie, przejdzie to długą drogę. Dobry hypervisor może całkiem dobrze rozdzielić czas procesora, ale pamięć RAM musi być przypisana do konkretnych maszyn wirtualnych. Po zmaksymalizowaniu pamięci RAM, poszukaj więcej rdzeni (tj. Czterordzeniowy rdzeń z wolniejszym taktowaniem w przeciwieństwie do dwurdzeniowego z szybszym taktowaniem), aby każda maszyna logiczna (w tym host) mogła mieć co najmniej jeden dedykowany rdzeń. Zapytałeś także o konkretną technologię zapewniającą lepszą obsługę maszyn wirtualnych. Z wyjątkiem niektórych procesorów Torba klasy, każdyProcesor / płyta główna na rynku będzie obsługiwać te technologie, więc istnieje prawdopodobieństwo, że już robisz wszystko, co możesz. Jednak te opcje czasami są domyślnie wyłączone w ustawieniach BIOS / UEFI, aby sprawdzić, czy funkcje wirtualizacji są faktycznie włączone. Wreszcie, uruchamianie wielu maszyn wirtualnych może czasami powodować duże obciążenie we / wy, więc dobra konfiguracja SSD lub RAID często może znacznie pomóc.


Core 2 Duo to 2 pokolenia temu ... być może rzeczy zostały dodane od tego czasu. Jestem pewien, że przynajmniej nie obsługuje funkcji „zagnieżdżonych tabel stron”.
Billy ONeal

@Billy - Core 2 już zawierał zestawy instrukcji dla największych i najłatwiejszych optymalizacji maszyn wirtualnych (jeśli masz ochotę na niską liczbę wiszących owoców), i nadal są one całkiem sprawnymi procesorami. Pamięć RAM i więcej rdzeni jest teraz naprawdę lepszym miejscem do spędzenia czasu i pieniędzy.
Joel Coehoorn

Zagnieżdżone tabele strona nie obniżać mój bagażnik o współczynnik 3 ... RAM nie dość tego. : \
Mehrdad


2

Mój obecny sprzęt: Core drugiej generacji i7 Quad Core, 8 GB pamięci RAM. Moim przypadkiem jest MacBook Pro, ale jestem pewien, że uzyskasz szybkie rezultaty niezależnie od marki i modelu. Innego dnia z powodzeniem uruchomiłem gościa Debian i Windows7 jednocześnie, a następnie uruchomiłem tryb XP w maszynie Wirtualnej Win7.

Rdzeń i7 jest hiperwątkowy, więc kończysz z 8 jednostkami wykonawczymi, a 8GiB RAM wydaje się przyzwoitą ilością miejsca na łokcie. Jednak, jak wspomnieli inni, wiele zależy od tego, co robisz na tych maszynach wirtualnych. Jeśli wymaga dużej ilości pamięci, liczba rdzeni nie będzie tak istotna, jak ilość pamięci RAM, którą można wcisnąć, a następnie przydzielić do maszyn wirtualnych. Zamiana nigdy nie jest dobra; zamiana w maszynie wirtualnej jest absolutną śmiercią dla wydajności.

Dlatego najpierw radzę przeanalizować, jaki jest twój prawdziwy ograniczający zasób (RAM lub CPU); następnie znajdź platformę, która to obsługuje.


0

Po pierwsze, rozważ swój budżet! Ostatnie 10% ulepszeń będzie bardzo drogie.

Potrzebujesz dosłownie mnóstwa pamięci i szybkiego dysku. Wybierz tradycyjny 7200 RPM lub nawet 10000 RPM, jeśli tradycyjny dysk twardy lub dysk SSD (ale są one małe). Pamięć RAM, której nie potrzebujesz, buforuje dysk, więc im więcej, tym lepiej.

Z mojego doświadczenia wynika, że ​​4 GB wystarcza na uruchomienie jednej maszyny wirtualnej, jeśli robi coś interesującego.


0

Potężny procesor Intel Core i5 z 8 GB pamięci RAM jest zalecany, jeśli szukasz najlepszych laptopów do wirtualizacji. Niektóre z nich są wymienione tutaj: - 7 najlepszych laptopów do wirtualizacji Powinien obsługiwać technologię Intel Virtualization zwaną także Intel VT-x


-1

Jestem bardzo zadowolony z wydajności VMWare Workstation na moim nowym laptopie: Thinkpad T520 z 8 gigabajtami pamięci RAM i i7-2720QM, który jest czterordzeniowym rdzeniem 2,2 GHz.

Martwiłem się szybkością dysku. Mam dysk rozruchowy SSD, ale nawet przy 240G kilka maszyn wirtualnych szybko go zapełni. Mam więc duży dysk o prędkości 7200 obr./min, który włożyłem do Ultrabay i stamtąd uruchamiam maszyny wirtualne. Jestem pewien, że wydajność byłaby lepsza, gdyby były na dysku SSD, ale biorąc pod uwagę wszystkie kompromisy, jestem zadowolony z tej konfiguracji.


proszę przeredagować odpowiedź, aby nie odwoływać się do żadnych konkretnych produktów - odniesienie do produktu powoduje, że twoja odpowiedź jest szybko datowana. Zaproponuj, jakie technologie wolisz mieć i dlaczego
Sathyajith Bhat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.