Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I do most of my development in VMware Workstation (version 7 at the moment). Unfortunately, on my laptop with 4 GB of RAM, an OCZ Vertex 2 240 GB, and a Core 2 Duo T9550 (2.66 GHz) does things criminally slowly when there's more than one VM running at a time (which given that I've been doing multi-server development lately is most of the time).

I know that there are some processors which (for example) have specific features to make virtualization fast, and I think there are some chipset features which make memory access faster specifically for virtualization workloads, but I'm not positive on either of these, and even if they do exist, I'm not sure they're available on laptops.

share|improve this question
Seems like a shopping recommendation to me. – Wuffers May 22 '11 at 5:05
@Mark: No, shopping recommendations are asking for a specific product. For an example, see… -- asking about what to look for is not a shopping recommendation, but asking for a specific product is. – Billy ONeal May 22 '11 at 5:08
Useful and interesting question with something to learn about processors and configuring for virtualization, applicable to a range of products and manufacturers. Worth keeping. +1 – JRobert May 22 '11 at 15:02
up vote 8 down vote accepted

Most chips now have virtualization extensions (Intel-VT or AMD-V). From personal experience (VirtualBox), I can tell that some of the features -- especially nested paging -- are very helpful; nested paging, for example, lowers my Ubuntu boot time quite noticeably (from 45 seconds to 15 seconds).
(Edit: Seems like "nested paging" is also called "second-level address translation" or "extended page tables" [EPT].)

It also depends on what your development is. I tried compiling the Chromium source code on a Core i5 (no virtual machines at all, on an actual computer), and 4 GiB of RAM was not enough -- 6 GiB was almost enough, but I still needed ~1 GiB of pagefile to prevent running out of memory. (I normally turn off the page file.) Doing this on a VM was clearly out of the question on my system, mainly because of RAM (but also the CPU). So RAM is very important too, especially with 2 VM's, although it depends on what you're doing.

Another feature that might help is having a true dual-core (or more) laptop, having one VM run on one core and another on another core. I haven't tested the impact of this personally, though, since I usually only run one VM at any time.

share|improve this answer
Is there anything I can do to test whether or not the CPU supports nested paging? – Billy ONeal May 22 '11 at 5:10
@Billy: Off the top of my head, I'd say download VirtualBox and see if the checkbox is enabled there. :-) I'll try to come up with a better solution though, since you can probably test it with the cpuid instruction. – Mehrdad May 22 '11 at 5:13
@Billy: Unfortunately seems like it's a tad harder to detect EPT for Intel processors than AMD processors; you need to read a model-specific register. Seems like making a VM in VirtualBox and then trying to check the Nested Paging box is probably easiest. (A quick glance at Wikipedia says that Nehalem-based CPUs and later should support it, though.) – Mehrdad May 22 '11 at 5:23
Do you know of anyone with an EPT enabled chip that can check with something like CPU-Z? (Not sure if CPU-Z shows it -- no EPT is listed for this chip, though it does show VT-x) – Billy ONeal May 22 '11 at 5:26
@Billy: Nope, CPU-Z doesn't show it on my laptop. :\ Even Intel's page doesn't show it. Weird... – Mehrdad May 22 '11 at 5:32

I think your problem has more to do with RAM than with CPU. If you can stuff more RAM in your laptop, it will go a long way. A good hypervisor can divide cpu time pretty well, but RAM has to be committed to specific VMs. After you max out RAM, look for more cores (ie: a slower-clocked quad core as opposed to a faster clocked dual core), so that each logical machine (including the host) can have at least one dedicated core. You also asked about a specific technology for better VM support. With the exception of certain netbook-class processors, any processor/motherboard on the market today will support these technologies, so odds are you're already doing everything you can there. However, these options sometimes are disabled by default in the BIOS/UEFI settings, to look there to make sure your virtualization features are actually enabled. Finally, running multiple VMs can sometimes create a lot of IO pressure, so a good SSD or RAID setup can often help considerably.

share|improve this answer
Core 2 Duo is 2 generations ago... perhaps things have been added since then. I'm sure at least that it doesn't support the "nested page tables" feature. – Billy ONeal May 22 '11 at 5:50
@Billy - Core 2 already included instructions sets for the biggest and easiest VM optimizations (the low-hanging-fruit, if you will), and they are still quite capable processors. RAM and more cores is really the better place to spend your time and money now. – Joel Coehoorn May 22 '11 at 17:54
Nested page tables did lower my boot by a factor of 3... RAM doesn't quite do that. :\ – Mehrdad May 22 '11 at 18:51

Intel does have a virtualization technology called VT that provides an instruction set tailored specifically towards virtual machines. The Intel ARK has a list of VT capable processors. You'll find quite a few mobile processors there as well as desktop.

share|improve this answer
My current chip has VT and it's still really really slow though. :( – Billy ONeal May 24 '11 at 2:47

My current rig: 2nd Generation Core i7 Quad Core, 8GiB of RAM. Mine happens to be MacBook Pro but I'm pretty sure you'd get speedy results regardless of specific make and model. The other day I was successfully running a Debian and Window7 guest simultaneously, and then running XP mode within the Win7 VM.

Core i7 is hyperthreaded, so you wind up with 8 execution units, and 8GiB of RAM seems to be a decent amount of elbow room. However, as others have mentioned, a lot depends on what you're DOING in those VMs. If it's memory intensive, the number-of-cores is not going to be anywhere as important as how much RAM you can cram in and then allocate to the VMs. Swapping is never good; swapping within a VM is absolute death to performance.

So my advice first is to analyze what your real constraing resource is (RAM or CPU); then find a platform that will support that.

share|improve this answer

First of all, consider your budget! The last 10% improvements will be very expensive.

You need literally tons of memory and a fast disk. Go for a 7200 RPM or even 10000 RPM if traditional harddisk, or a SSD (but these are small). The RAM you do not need, will cache the disk so the more the better.

4 Gb is in my experience only enough for a single VM running if it does anything interesting.

share|improve this answer

I'm very happy with the performance of VMWare Workstation on my new laptop: a Thinkpad T520 with 8 gigs of RAM and the i7-2720QM, which is a 2.2 GHz hyperthreading quad core.

I was concerned about disk speed. I have an SSD boot drive, but even at 240G, a few VMs would fill it up quickly. So I got a big 7200 RPM drive that I put in the Ultrabay, and I run VMs from there. I'm sure performance would be better if they were on an SSD, but given all the compromises, I'm happy with this setup.

share|improve this answer
please reword the answer so as to not reference any particuar products - product reference causes your answer to be dated fast. Suggest what technologies would you prefer to have ans why – Sathya May 22 '11 at 16:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .