Ich hatte das gleiche Problem und habe Oracle VirtualBox unter Windows 7 (als Host) und Ubuntu (als Gast) installiert. Ich verwendete einen eigenständigen Laptop, HP EliteBook 8540W mit Intel Core i7 mit 1,87 Gigahertz und 8 Gigabyte RAM.
Unter der Annahme, dass Ihre Installation ordnungsgemäß funktioniert, wählen Sie auf Ihrem Guest-Computer (z. B. in meinem Fall Ubuntu) im Hauptmenü unter "Computer" die Option "Einstellungen ..." aus. Wählen Sie "System" und klicken Sie auf die Registerkarte "Prozessor". Sie können die Taktrate (mit "Execution Cap" beschriftet) anpassen, indem Sie den Indikator auf der Leiste ganz nach unten auf 1 Prozent verschieben.
Ich bin davon ausgegangen, dass das Host-Betriebssystem (in meinem Fall Windows 7) keine Taktzyklen verbraucht hat (ich habe dies durch Überprüfen des "Task-Managers" bestätigt und in meinem Fall die CPU-Auslastung NULL auf dem Host-Computer festgestellt). Daher habe ich 100% "Ausführungsobergrenze" abgesaugt, die der Host-Maschine entspricht (z. B. 1,87 GigHZ). Wenn Sie einen Prozentsatz zwischen der Taktrate Ihres Hostcomputers und 800 MHz eingeben, können Sie den Prozentsatz ermitteln, der 800 MHz entspricht.
Ich hoffe das hilft.
Viel Glück.
Kompiliert und verwendet: cpulimit, das wie ein Zauber wirkte, um die VM zu verlangsamen.
quelle
Ich bin zwar kein Experte für die verschiedenen Virtualisierungstechnologien, aber ich halte es für unwahrscheinlich, dass Sie eine solche Einstellung finden. Sie finden jedoch Einstellungen (zumindest in MS Hyper-V), mit denen Sie eine virtuelle Maschine auf einen Prozentsatz der gesamten Aktionen der Host-Maschinen beschränken können. Wenn Sie also einen 8-Kern-Host mit 2 GHz haben, können Sie versuchen, die virtuelle Client-Maschine auf einen Kern und nicht mehr als 45% des Kerns zu beschränken.
Dies wäre jedoch sehr grob und ungeeignet, wenn Sie Timing-Loops oder etwas testen möchten, bei dem die tatsächliche Prozessorgeschwindigkeit eine Rolle spielt.
quelle
--cpuexecutioncap <1-100>: Diese Einstellung steuert, wie viel CPU-Zeit eine virtuelle CPU verwenden kann. Ein Wert von 50 impliziert, dass eine einzelne virtuelle CPU bis zu 50% einer einzelnen Host-CPU verwenden kann.
quelle
Ich kann bestätigen, dass dies in VirtualBox nicht unterstützt wird. Die Dokumentation scheint jedoch fraglich zu sein, ob VMware dazu in der Lage ist oder nicht.
BEARBEITEN: Für VMware: "Dies ist mit den Player- und Server-Produkten nicht möglich, aber ich glaube, es ist im ESXi (dem kostenlosen" Bare-Metal-Hypervisor "-Produkt) und den kostenpflichtigen Produkten wie VMWare Workstation."
quelle
Möglicherweise können Sie dies mit CPU-Pinning simulieren. Erstellen Sie dann einige CPU-gebundene Prozesse, die an dieselbe CPU gebunden sind. Die geschätzte CPU-Geschwindigkeit ist (tatsächliche CPU-Geschwindigkeit / Anzahl der Prozesse).
Mit einigen Ressourcenbegrenzungsprogrammen können Sie die Ressourcenprozentsätze begrenzen. Dies würde es einfacher machen, die CPU-Geschwindigkeit zu begrenzen. Dazu müssen Sie den Zugriff auf Ersatzressourcen deaktivieren.
quelle
In VirtualBOX gibt es einen Schieberegler, mit dem Sie den Prozentsatz der Host-CPU konfigurieren können, den die Gast-CPU verwenden kann. Dieser Prozentsatz gilt für jeden Kern.
In VirtualBOX gibt es keine Möglichkeit, einen Multi-Core mit unterschiedlichen Geschwindigkeiten für jeden Core zu simulieren, sondern nur einen Schieberegler für alle Cores.
Wenn Sie den Schieberegler auf 50% einstellen, werden Gast-Cores mit der Hälfte der Host-Cores ausgeführt (eine Grundeinstellung pro Core).
Wenn Sie also einen Deka-Kern (10 Kerne) auf dem Host und einen Tri-Kern auf dem Gast (drei) haben und möchten, dass der Gast mit X MHz ausgeführt wird, während der Host mit Y MHz ausgeführt wird, ignorieren Sie einfach die Anzahl der Kerne, um den Prozentsatz zu berechnen.
Die Formel wäre: Prozent = 100 * X / Y
Hoffe, das hilft auch anderen Menschen, die hier in die Zukunft kommen.
quelle