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):
- Fast processor
- Turn off anti-virus
- Using a single virtual processor
- Enable hyper-threading
- Use pre-allocated virtual disks
Comments(1)