Jak mogę symulować wolną maszynę na maszynie wirtualnej?

29

Testuję aplikację internetową obciążoną AJAX. Tworzę na nowym Macu, ale używam VmWare Fusion (obecnie 3.1.2) do testowania w Windows XP, używając IETester do symulacji starszych wersji IE.

To pozwala mi zobaczyć, jak starsze wersje IE renderowałyby stronę, ale chciałbym również zobaczyć, jak witryna działałaby na starszym komputerze. W ustawieniach maszyny wirtualnej widzę, że mogę zmniejszyć pamięć RAM; czy istnieje sposób na zmniejszenie prędkości procesora?Jak inaczej mogę symulować wolną maszynę?

(Zamierzam również sprawdzić, jak symulować wolne połączenie internetowe ).

Nathan Long
źródło

Odpowiedzi:

17

Wątek Ograniczanie szybkości procesora w maszynie wirtualnej oferuje kilka porad:

  • W VMWare ESX i ESXi możesz utworzyć pulę zasobów i ograniczyć zasoby procesora dla tej puli. Pozwoliłoby to ograniczyć szybkość procesora dowolnego systemu utworzonego w tej puli zasobów.
  • Ustawienia w MS hyper-V pozwalają ograniczyć maszynę wirtualną do procenta całego hosta. Jeśli więc masz 8-rdzeniowy host działający z częstotliwością 2 GHz, możesz spróbować ograniczyć maszynę wirtualną klienta do jednego rdzenia i nie więcej niż 45% rdzenia.

Virtual PC Guy zauważa w spowolnieniu maszyn wirtualnych, które:

ustawienie maszyny wirtualnej z maksymalnie 10% zasobem procesora w Virtual Server (na przykład) oznacza, że ​​będzie ona mogła działać na CPU tylko przez 10% całkowitego czasu planowania systemu w danym okresie czasu. Podczas działania maszyny wirtualnej nadal działa ona z pełną prędkością procesora (choć rzadziej niż w przeciwnym razie).

Sugeruje użycie zamiast tego Turbo do spowolnienia maszyny wirtualnej. Sugeruje także stosowanie produktów emulacji, które są znacznie wolniejsze niż wirtualizacja, takich jak DOSBox i Bochs .

harrymc
źródło
7

Możesz użyć cpulimit, aby ograniczyć ilość czasu przetwarzania przeznaczonego na twój proces. Jest to dostępne w repozytoriach dla większości dystrybucji Linuksa.

Użycie jest bardzo proste, jeśli na przykład maszyna wirtualna działa jako proces 12345 i chcesz przydzielić tylko 5% cykli procesora, skorzystaj z następujących opcji:

$ cpulimit -l 5 -p 12345
pfrenssen
źródło
4

Naprawdę niemożliwe jest niezawodne dopasowanie wydajności starszej maszyny. Nawet jeśli uda ci się zmniejszyć zużycie procesora i rozmiar pamięci , jak dusisz szybkość FSB lub prędkość pamięci ?

Powiedziawszy to, możesz użyć narzędzia do zarządzania procesami na komputerze Mac, aby ograniczyć użycie procesora przez samą VMWare Fusion. Jeśli zrobisz to wystarczająco dobrze, aby emulować starszą maszynę, wówczas cała aplikacja VMWare prawdopodobnie będzie działać bardzo wolno - podobnie jak klasyczna maszyna gotowa na XP.

Nie wiem, do czego służy graficzny program Mac, ale sprawdź, czy Twój komputer Mac obsługuje renicepolecenie: Otwórz terminal i wpiszman renice aby przeczytać o tym, jak działa na komputerze Mac.

Nawiasem mówiąc, maszyny gotowe na XP są teraz prawdopodobnie tanie. Prawdziwy można by prawdopodobnie dostać za ~ 75 $. Następnie możesz przenieść swoją maszynę wirtualną na prawdziwą ...

jpaugh
źródło
2
Ha! Ciekawy pomysł na zakup rzeczywistej maszyny. Ponieważ cały pomysł polega na emulacji starego komputera, zakup starego komputera jest dość tanią opcją. :)
Nathan Long
2

To naprawdę zależy od tego, jak wolna jest maszyna, którą chcesz emulować. Jeśli przywrócisz XP do 128 MB pamięci RAM, będzie to boleśnie powolne, do tego stopnia, że ​​nie jestem pewien, czy szybkość procesora wirtualnego będzie naprawdę istotna. Możesz także uruchomić pliki VM ze starego zewnętrznego dysku twardego USB1 (sprawdź, czy możesz znaleźć dysk o prędkości 4200 obr./min). To powinno spowolnić sytuację.

Kościół
źródło
2

Pewnym sposobem na spowolnienie VM jest uruchomienie jak największej liczby jego klonów!

Twój procesor, FSB, RAM i wszystkie inne szybkie komponenty twojego komputera zostaną pokrojone i pokrojone w kostkę między innymi maszynami wirtualnymi (o ile robią coś intensywnego - na przykład jeden z wygaszaczy ekranu openGL), i poczujesz się jak znów jesteś w 1990 roku ...

Haqa
źródło
Prosty i dość skuteczny.
rzuca
1

Zainstaluj małe narzędzie na maszynie wirtualnej XP gościa, aby kontrolować częstotliwość procesora za pomocą wbudowanego dynamicznego przełączania częstotliwości XP. Na przykład narzędzie takie jak SpeedswitchXP . Nigdy nie próbowałem czegoś takiego sam i mogą występować problemy, jeśli wirtualny procesor, który VMWare przedstawia VM gościowi nie obsługuje dynamicznego przełączania częstotliwości.

queso
źródło
1
Obawiam się, że będzie to miało niewielki wpływ na maszynę wirtualną, w której procesor jest tylko emulowany.
harrymc
1
Tak, nie sądzę, że zmiana częstotliwości jest opcją; albo nie zadziała (prawdopodobnie), albo dusi cały system operacyjny (niemożliwe?).
jpaugh
0

Rozważałbym pomysł użycia nieskończonego wątku pętli z dostrajalnym poleceniem uśpienia i ustawiłem priorytet procesu. Jeśli chcesz, żebym spoliczkował szybki fragment kodu C, daj mi znać.

RobotHumans
źródło