Intel VT-x is a set of processor enhancements to improve virtualization performance. In theory, VT-x should allow for near-native speed in a virtual machine. VirtualBox, a popular open source virtualization program, recently added a check box to turn on VT-x or AMD’s AMD-V equivalent. But VirtualBox’s site warns that enabling it may reduce the performance of a virtual machine:
However, we do not make use of these features by default. The reason is very simple: our x86 virtualization is very sophisticated and in most cases it provides significantly better performance than when relying on VT-x. Virtualization products that rely on VT-x are usually much less sophisticated and tuned.
They say there is one benefit to using VT-x, reliability:
In general, with VT-x enabled much less virtualization code from VirtualBox has to be executed which can result in a more reliable system in case there are problems. So if you run into an issue, we recommend to compare the results to a VT-x enabled VM.
Is Intel’s VT-x really slower than VirtualBox’s own software virtualization? I decided to run a few tests to find the answer.
If you want to use VT-x you will need a compatible CPU, look up your own and see if it has VT-x or AMD-V support. The first step is to enable it in your BIOS. In most computers it is disabled in the factory. Dell had disabled this feature on my Dimension 9200, I enabled it in the BIOS setup.
Next, you need to tell VirtualBox to use VT-x. Open the settings windows for your virtual machine and switch to the Advanced tab. Then check the box for VT-x. Intel’s virtualization will now be used to run your virtual machine. You shouldn’t have to worry about flipping it on and off, doing this to my test virtual machine did not cause any trouble.
Now, to the benchmarks. I used VirtualBox 1.5.0 on my Ubuntu 7.04 system. The guest OS was Ubuntu 7.10 Beta with the VirtualBox add-ons installed. I ran each of these tests a couple times to try to get the best possible result with and without VT-x enabled. Here are the results:
Extracting a 400MB Gzipped archive:
- 16s without VT-x
- 15s with VT-x
- 1142fps without VT-x
- 1149fps with VT-x
Boot up, from Grub to GDM:
- 28s without VT-x
- 36s with VT-x
In conclusion, it looks like the VirtualBox developers are correct in saying that Intel VT-x is slower than their own software virtualization. Two of my three test resulted in VT-x being slightly faster, but the lead is insignificantly small. VirtualBox without VT-x was much faster booting Ubuntu, and this is probably the most important of the tests.
My recommendation for now would be to leave VT-x off. Turning it on may slightly impact negatively on the performance your virtual machine. But if you have stability problems with VirtualBox, you may want to try enabling it and see if it helps.