We're currently running a couple of continuous build/test agents in VMWare Player. They regularly fail due to timing/speed problems. That is: because there are two VMs on the same box, they contend for (e.g.) disk access and are massively slowed down.

Would upgrading to VMWare Workstation (or Server or ESXi) improve things, or should I request a physical box for one of the agents instead?

  • Given the (relatively) low cost of a decently speced PC, why not request one or two of those for the job and be done with it? – John Gardeniers Mar 2 '11 at 11:37
  • I have, but that assumes that they'll be approved. Also, VMs are attractive in that you can just clone a dev image and spin up another one. – Roger Lipscombe Mar 2 '11 at 11:53

Unless you REALLY need the host client functionality you get with Player/Workstation/Server I'd always suggest going with ESXi - it's that much more functional, stable and performant. Obviously it's dedicated at that point but that's the price you pay.

  • 1
    Definitely that much more performant? Will it solve my problem? Or will I waste time getting it installed and then find myself in the same situation? – Roger Lipscombe Mar 2 '11 at 11:53
  • 2
    Wont help unless you describe bad. Disc IO is a hardware problem. Get more / faster discs. Software and CPU hardware never will help with a disc io problem. – TomTom Mar 2 '11 at 12:51
  • Couldn't have said it better myself TomTom. – Chopper3 Mar 2 '11 at 13:02
  • 1
    I agree as well, if you need a quick fix to this problem while you try to get a server we have added additional hard drives (two or three) and distributed the VMs between them when disk I/O was the problem. – Scott Keck-Warren Mar 2 '11 at 13:15

ESX (i) is what is called a "type 1 hypervisor": a dedicated virtualization operating system running directly on the host hardware, with full access and control to hardware resources; Player/Workstation/Server are "type 2 hypervisors": they are applications running on an underlying operating system (Windows or Linux); they have to go through it to access hardware, and this is the main reason ESX (i) is definitely better; the difference in performances is simply astounding.

That said, if performance is critical, virtualization is clearly not the best option here. The two VMs are going to compete anyway for hardware resources, regardless of the virtualization system you're using (although ESX (i) makes a really better job at managing them); and unless more than two times the resources consumed by each VM are available on the host, they will not be able to run smoothly; this means, if each VM needs 2 cores and 2 GB of memory, the host will need at least 4 cores and 5 GB of memory (there is of course some virtualization overhead) in order to fulfill their requirements. About disk I/O, the best thing you can do is placing the two VMs on different physical disks; not partitions or volumes: you have to actually use different physical disks in order to have them not compete for disk I/O.

  • Actually the best is replacing the disc with a raid 10 of a couple of very fast discs (or a SSD) on a professional level raid controller. – TomTom Mar 2 '11 at 12:52
  • @TomTom: if the VMs are really disk bound, using the disks without any RAID and placing a single VM on each of them would perform A LOT better. – Massimo Mar 2 '11 at 12:56
  • No. Really. I use a 4 disc RAID 10 at the moment on a enterprise leel controller and the performance i get out of that is way higher than 2 single discs. – TomTom Mar 2 '11 at 13:01
  • If you're running only 2 VMs, I still think that performance would be even higher with 2 RAID 1 volumes of 2 disks each and a single VM on each of them. But there has always been endless debate on this topic :-) – Massimo Mar 2 '11 at 13:55

As Chopper says, the difference between ESX and VMWare player is stunning (as is, to be fair, the difference between HyperV server and Virtual PC). It's a fundamental change the in way virtualisation is delivered which greatly benefits the guest OSes.

However the only way to know if its fast enough for your needs is to test test test... and as much as I love virtualisation's ability to solve problems, it isn't always the answer to everything. We have a few "performance critical" tasks here that we don't see ourselves migrating to VMs any time soon.


I would say not only go with ESXi, but match it to what you are going to be running in production as close as possible. You'll have less surprises in the end.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.