VMware Performance Testing with MSBuild & .NET

I’ve finally got my beast of a server up and running, but that’s another blog post entirely. I was curious about some different configurations in VMware, and how they would affect performance. I was told that standard benchmarks don’t work, so I did some real-world testing.

When I work on a programming project, I like to set it up so that it is dead simple to run a build. I usually use a batch file that calls an NAnt script. To make a long story short, I double click on that batch file, and the project is built and ready to be deployed. It even automatically times how long it takes to run. There are a lot of files being copied around and a lot of compiling going on. Overall, it’s a pretty good indicator of how good a machine is for .NET development.

Along with my buddy ObiShawn, we ran the build on a lot of different types of machines and virtual machine configurations.

We stored the results in a Google Spreadsheet (which works great for collaborating by the way):
https://spreadsheets.google.com/pub?key=p-fn01PSjtXvkLnyTlHxedQ

The results are by no means ultra-reliable, but I think I can still draw some general conclusions:

  • Pre-allocating your hard drive doesn’t make a significant difference, but is still slightly better none the less.
  • Hyperthreading DOES help the virtual machine slightly, but outside of VMware, it actually hurt performance. You’ll have to set this based on which you use more.
  • Pentium D’s are horrible, horrible processors, but I’m sure you already knew that.
  • Hard drive speed was NOT a significant factor. I was actually very surprised by this. I do still recommend 10,000RPM drives for booting Windows.
  • Antivirus is a really bad idea (you should be smart enough to not get a virus anyway)
  • CPU speed is pretty much the most important factor for compiling. I was pretty impressed that a Macbook Pro running BootCamp was able to keep up with my new server. Keep in mind that I was running in a virtual machine, so I don’t feel too bad.
  • Running in a virtual machine does have a cost, but in my opinion, the cost is worth it. Especially since the cost of great processors are plummeting. The quad core should be highly affordable very soon.
  • Setting your virtual machine to use 1 processor is actually slightly better than using 2. I read something about it being due to the fact that 2 virtual processors complicate the scheduling if you have 2 real processors.

So here are the speed for your virtual machine (in order of importance):

  1. Fast processor
  2. Turn off anti-virus
  3. Using a single virtual processor
  4. Enable hyper-threading
  5. Use pre-allocated virtual disks

1 Comment so far

  1. Oytun Yilmaz on September 8th, 2007

    thanks for the tips.

    I will give ubuntu a shot. I never considered linux up to this point. Also I leared that using physical partitions gives no gain on performances. I will go with prealocated virtual disks as you.

    I am also planing to make a script to use rdiff-backup and vmware`s snapshot feature to set up automated, live, differential, historical backups. I will let you know after I finished this script

Leave a reply