19

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.

3
  • 1
    Seems like a shopping recommendation to me.
    – Wuffers
    May 22, 2011 at 5:05
  • 4
    @Mark: No, shopping recommendations are asking for a specific product. For an example, see superuser.com/questions/254068/… -- asking about what to look for is not a shopping recommendation, but asking for a specific product is. May 22, 2011 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, 2011 at 15:02

7 Answers 7

9

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.

5
  • Is there anything I can do to test whether or not the CPU supports nested paging? May 22, 2011 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.
    – user541686
    May 22, 2011 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.)
    – user541686
    May 22, 2011 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) May 22, 2011 at 5:26
  • @Billy: Nope, CPU-Z doesn't show it on my laptop. :\ Even Intel's page doesn't show it. Weird...
    – user541686
    May 22, 2011 at 5:32
12

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.

3
  • 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. May 22, 2011 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. May 22, 2011 at 17:54
  • Nested page tables did lower my boot by a factor of 3... RAM doesn't quite do that. :\
    – user541686
    May 22, 2011 at 18:51
5

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.

1
  • My current chip has VT and it's still really really slow though. :( May 24, 2011 at 2:47
2

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.

0

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.

0

A powerful Intel Core i5 processor with 8 GB of RAM is recommended if you looking for best laptops for virtualization. Some of these are listed here:- 7 Best Laptops for Virtualization It should support Intel Virtualization Technology also called Intel VT-x

-1

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.

1
  • 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
    – Sathyajith Bhat
    May 22, 2011 at 16:35

You must log in to answer this question.

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