Limiting CPU speed in a virtual machine?

I have been tasked with the same problem and I installed Oracle VirtualBox on Windows 7 (as host) and Ubuntu (as guest). I used a standalone laptop, HP EliteBook 8540W with Intl Core i7 running at 1.87 GigHZ and 8Gig RAM.

Assuming your installation works properly, on your Guest machine (e.g. in my case, Ubuntu) select "Settings..." from "Machine" in the main menu; select "System" and click on "Processor" tab. You can adjust the clock speed (labeled, "Execution Cap") by sliding the indicator on the bar all the way down to 1 percent.

I assumed that the host OS (Windows 7 in my case) was not consuming any clock cycles (I confirmed this by checking the "Task Manager" and I found ZERO CPU utilization on the host machine .i.e. windows 7 in my case). Therefore, I asuumed 100% "execution cap" equals that of host machine (e.g. 1.87 GigHZ). I think by taking a percentage between your host machine clock speed and 800 MHZ, you are able to figure out the percentage value that corresponds to 800 MHZ.

I hope this helps.

Best of luck.


On VMWare ESX and ESXi you can create a Resource Pool and limit the CPU Resources for that pool. This would allow you limit the CPU speed of any systems created in that Resource Pool.


Compiled and used: cpulimit which worked like a charm to slow the VM down.


While I'm no expert on all the different virtualizations technologies, I think it's unlikely you'll find such a setting. However, you'll find settings (at least in MS hyper-V) that allow you to limit a virtual machine to a percent of the overall host machines actions. So if you have a 8 core host running at 2 GHz, you could try limiting the client virtual machine to one core, and no more than 45% of the core.

However, this would be very crude and not suitable if you're trying to test timing loops or something where the actual processor speed comes into play.