Ograniczasz szybkość procesora na maszynie wirtualnej?


29

Czy ktoś zna sposób ograniczenia prędkości procesora na maszynie wirtualnej? A może istnieje oprogramowanie do wirtualizacji?

Próbuję znaleźć minimalne wymagania dla systemu, biorąc pod uwagę konkretny obraz systemu operacyjnego, który mam. Widzę sposoby na ograniczenie ilości pamięci RAM i dysku twardego oraz liczby rdzeni, ale muszę spowolnić procesor do 800 MHz, aby naprawdę symulować konfigurację systemu. Ponadto komputer z maszyną wirtualną to komputer z systemem Windows 7.

Odpowiedzi:


21

Zadanie polegało na tym samym problemie i zainstalowałem Oracle VirtualBox na Windows 7 (jako host) i Ubuntu (jako gość). Użyłem samodzielnego laptopa HP EliteBook 8540W z Intl Core i7 działającym na 1,87 GigHZ i 8Gig RAM.

Zakładając, że instalacja działa poprawnie, na maszynie gościa (np. W moim przypadku Ubuntu) wybierz „Ustawienia ...” z „Maszyny” w menu głównym; wybierz „System” i kliknij zakładkę „Procesor”. Możesz dostosować prędkość zegara (oznaczoną „Limit wykonania”), przesuwając wskaźnik na pasku do 1 procent.

Zakładałem, że system operacyjny hosta (w moim przypadku Windows 7) nie zużywa żadnych cykli zegara (potwierdziłem to, sprawdzając „Menedżera zadań” i znalazłem wykorzystanie ZERO CPU na komputerze hosta .ie Windows 7 w moim przypadku). Dlatego odrzuciłem w 100% „limit wykonania” równy komputerowi hostowi (np. 1,87 GigHZ). Myślę, że biorąc udział procentowy między zegarem maszyny hosta a 800 MHz, jesteś w stanie obliczyć wartość procentową odpowiadającą 800 MHz.

Mam nadzieję, że to pomoże.

Powodzenia.


9

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.


Przeczytałem o opcji puli zasobów i pomyślałem, że dotyczy ona odtwarzacza. Niestety tak nie jest. A ESX / ESxi nie są darmowe ... Ale mógłbym wypróbować wersję próbną i jeśli faktycznie zadziała, zajrzyj jeszcze raz.
RCC

6
ESXi jest bezpłatny. (i kilka innych postaci ...)
Tarnay Kálmán

Naprawdę? Z jakiegoś powodu tak nie myślałem. Ale stoję skorygowany! Bardzo dziękuję za zwrócenie na to uwagi.
RCC


2

Chociaż nie jestem ekspertem od wszystkich różnych technologii wirtualizacji, myślę, że jest mało prawdopodobne, abyś znalazł takie ustawienie. Znajdziesz jednak ustawienia (przynajmniej w MS hyper-V), które pozwalają ograniczyć maszynę wirtualną do procentu ogólnej liczby akcji hostów. 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.

Byłoby to jednak bardzo prymitywne i nieodpowiednie, jeśli próbujesz przetestować pętle taktowania lub coś, co ma rzeczywistą prędkość procesora.


Widziałem kilka programów, które to robią - mianowicie ograniczają procent wykorzystania procesora na proces - ale widziałem tylko opcje Linuksa. To prawda, że ​​nie zagłębiłem się w nie. Jeśli rozwiązanie, które próbuję, zgodnie z opisem w odpowiedzi na MaxMackie, nie działa, przejrzę te opcje dalej.
RCC

Tak, to może mieć naprawdę zły wpływ na pętle czasowe. Wszystko zależy od tego, czy działa z pełną prędkością do 45%, a następnie się wyłącza, czy też próbuje działać z prędkością 45%.
Zan Lynx

2

--cpuexecutioncap <1-100>: To ustawienie kontroluje ile czasu procesora może użyć wirtualny procesor. Wartość 50 oznacza, że ​​pojedynczy wirtualny procesor może wykorzystać do 50% jednego procesora hosta.


1
Więcej informacji sprawi, że odpowiedź będzie możliwa do zaakceptowania.
Ramhound,

1

Mogę potwierdzić, że nie jest to obsługiwane w VirtualBox. Dokumentacja wydaje się jednak niepewna, czy VMware jest w stanie to zrobić.

EDYCJA: W przypadku VMware: „Nie jest to możliwe w przypadku produktów odtwarzacza i serwera, ale uważam, że dotyczy to ESXi (darmowego produktu„ hypervisor bez systemu ”) i płatnych produktów, takich jak VMWare Workstation.”


Mogę to również potwierdzić - ustawiłem wszystko na VirtualBox, a potem to odkryłem. Obecnie używam VMware i próbowałem zmodyfikować plik config.ini, aby ograniczyć host.cpukHz do 800000. Wygląda na to, że sfałszuje maszynę wirtualną do myślenia, że ​​procesor MHz wynosi 800. Nie jestem pewien, czy rzeczywiście zrobi to, co chcę ale mam na to nadzieję. Pomysły?
RCC

Z tego, co widziałem, powinno to działać. Upewnij się tylko, że ustawiłeś host.noTSC = "TRUE" w tym samym pliku konfiguracyjnym. To reguluje zegar procesora, aby upewnić się, że nie zwalnia. Ponadto w systemie operacyjnym gościa przejdź do karty Opcje i upewnij się, że wybrana jest synchronizacja czasu między maszyną wirtualną a systemem operacyjnym hosta.
n0pe

Tak, mam również host.noTSc = „TRUE”. Nie byłem jednak w stanie znaleźć miejsca, w którym mogę włączyć synchronizację czasu między vm a hostem w odtwarzaczu vmware ...
RCC

Jestem prawie pewien, że musisz działać w systemie operacyjnym gościa
n0pe

1

Można to zasymulować za pomocą przypinania procesora. Następnie utwórz niektóre procesy powiązane z procesorem przypięte do tego samego procesora. Szacowana prędkość procesora to (Rzeczywista prędkość procesora / liczba procesów).

Niektóre oprogramowanie ograniczające zasoby pozwala ograniczyć procent zasobów. Ułatwi to ograniczenie szybkości procesora. Aby to zrobić, musisz wyłączyć dostęp do wolnych zasobów.


0

W VirtualBOX znajduje się suwak, w którym można skonfigurować% procesora hosta, z którego może korzystać procesor gościa. Taki procent dotyczy każdego rdzenia.

W VirtualBOX nie ma możliwości symulacji wielordzeniowej z różnymi prędkościami na każdym rdzeniu, tylko jeden suwak dla wszystkich rdzeni.

Ustawienie suwaka na 50% spowoduje, że rdzenie gościa będą działały na 1/2 rdzeni hosta (podstawy na rdzeń).

Więc jeśli masz deca core (10 rdzeni) na hoście i trzy rdzeń na gościu (trzy) i chcesz, aby gość działał na X MHz, podczas gdy host działa na Y MHz, po prostu zignoruj ​​liczbę rdzeni, aby obliczyć procent.

Wzór byłby następujący: Procent = 100 * X / Y

Mam nadzieję, że pomoże to również innym osobom przybywającym tutaj w przyszłości.

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.