0

Our software department has a server running VMWare Server 2. We typically have 8-10 VMs running as test environments (Win XP and Server 08) for various versions of our software, and one VM that is used as a build server (Win XP).

The host is running Server 2003 R2. It has 32GB RAM, 8 core Xeon 3.16GHz CPU, one disk for host OS and two raid disks for VMs.

The majority of the time, this setup behaves very well and there are no complaints. Other times, the VMs can be very laggy. This is sometimes, but not always, correlated to heavy load on the build server.

I'm a software developer, not an IT pro, but it seems to me that this machine should be beefy enough to handle this many VMs. Is this occasional performance hit likely just because we're hitting the limits of the hardware, or should I be looking for another culprit?

From what I've read, I'm guessing if there's a bottleneck, it's probably disk I/O with all these VMs running off two disks (especially the build server). Would spreading the VMs over more disks, and/or switching to SSDs give us a significant performance boost?

Other things I've read may increase performance:

  • single virtual processor per VM
  • removing/disabling unused virtual hardware
  • preallocated disk space
  • not using snapshots
  • setting a reserved memory limit on the host and disabling VM memory swapping

Can anyone confirm or deny if any of these improve performance? What other good tweaks have I missed?

3 Answers 3

1

You've chosen some good performance measures (your bullet list) and you're right that disk IO could be the issue but I think you're missing a trick.

Unless you need to use the undelying S2K3 OS for something then why not stop using 'Server 2' (which isn't actually really very good at running as a server) and use the free ESXi hypervisor instead? Ok you'll lose the base Windows OS but you'd see significant performance improvements and have much better visibility of your VM's behaviour - enabling you to confirm any IO bottlenecks (which really only spending money will fix).

Oh and I'm intrigued by this '8 core Xeon' you have, does it actually have dual quad-core Xeons - it's just that there's not an 8-core 3.16Ghz Xeon shipping yet. This info could inform us better.

4
  • I would love to switch to ESXi. Unfortunately, the host server is locked away in a server room that we lowly software devs don't have access to. My understanding is that there isn't a free way to remotely administer ESXi. Maybe I'm mistaken?
    – sjohnston
    May 19, 2010 at 17:24
  • 1
    Yes there is a totally free way with ESXi (called the vSphere Client, a Windows app). What's not free is vCenter which manages MULTIPLE ESX servers (and some of the more advanced features too).
    – Chopper3
    May 19, 2010 at 17:28
  • Thanks, I'll have to give the ESXi option a closer look.
    – sjohnston
    May 19, 2010 at 17:37
  • 1
    +1 - ESXi is the way to go, and you shouldn't need physical access to the VMWare box again once it's installed. The performance gain from the thin hypervisor is pretty impressive & it saves you from a bunch of MS security patches every month too :)
    – voretaq7
    May 19, 2010 at 17:38
1

That's a good selection of tweaks. However, a tweak that improves CPU performance for example is useless if you're disk bound. I'd suggest starting out with a session with Perfmon (look at the Disk I/O stats in particular) to identify where the trouble lies.

If you're not using preallocated disks, looking closely at host disk fragmentation would be productive, as might rebuilding the XP VMs with aligned disk partition boundaries.

The big stick would be migrating to ESXi, which offers much better performance, providing you've got the hardware compatibility.

0

I worked with a server similar to yours - Windows 2003 R2, VMware Server 2, XP build machine and a few other VMs, adequate RAM and a six disk RAID 5 for the virtual machines. Any time the build machine kicked in, you definitely could notice it on other VMs. It was sometimes painful.

I googled and tried every optimization I could find, but only saw minor performance gains from it. I then migrated this one VM off onto its own VMware ESXi host and all machines everywhere were much happier.

This experience has led me to avoid VMware Server in general - especially for disk intensive applications. It is fine for low usage scenarios, but using ESXi (or Hyper-V server which I also like) generally makes life so much easier.

I now have a build machine sharing a similar, though slightly beefier, server with many other VMs under Hyper-V and it works great.

Since my setup had a good many more disks than yours, I would be cautious about just assuming more disks would solve your problems.

2
  • Thanks for the personal anecdote. Sounds like your experience agrees with what others have posted. ESXi sounds like the way to go. If we do end up adding disks to this machine, getting one dedicated just to the build VM would be my top priority.
    – sjohnston
    May 19, 2010 at 21:13
  • Devoting disks just to the build machine should definitely help. I remember adding an iSCSI-based disk to hold the build machine files and that helping somewhat. Good luck!
    – Jeremy
    May 19, 2010 at 22:57

You must log in to answer this question.

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