Archive for May, 2007

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

New VMware Server - Quad Core Intel, 4gb RAM, 400 gig RAID, etc

I’ve been brewing up a plan to save power and reduce the number of computers I have laying around, as well as increase my productivity. I mentioned before that I used to have 3 computers running 24/7 until I realized that I was paying hundreds of dollars a year in electricity.

In an effort to further consolidate my computers, I’m building a massive server that will do all the grunt work I need it to do very efficiently. I’m going to be running VMware server, which can run multiple independent virtual machines simultaneously. So basically, I’ll have 1 machine that acts as my development machine, 1 that runs as a build server, and 1 that serves up mail, source control, and files. I can run that single machine 24/7 and connect in with other computers. It doesn’t matter how powerful those machines are since they’ll be used as dummy terminals.

I already do a lot of work inside of virtual environments, so it won’t be much of a shock. For example, I have a virtual machine for my taxes each year. I have another virtual machine that has software on it to do video and audio trans-coding. Using the new server for these tasks will now be faster than doing them right on my own computer.;

Through the beauty of VMware, I can replace multiple machines (3 or 4 in this case). Each one will effectively be as fast as the server itself (or at least one of the cores). That’s due to the 4 cores and 4 gigs of memory that I have planned. For example, I expect compiling in Visual Studio 2005 to be faster than my crappy Pentium D.

I can’t build the machine until June 22nd. That’s when the Intel Core 2 Quad processor is expected to drop down to $266, which is an absolute bargain. I plan on using good parts that should allow me to overclock it to well over 3 gigahertz! That’s a total of 12GHz of computing power. Since the architecture blows away the Pentium 4, it’s probably like having a 15-20GHz P4. That is, of course, assuming you can utilize it.

As far as power is concerned, I’m trying to get a very efficient power supply. Doing the math, I’m realizing that can have a large impact on how much it actually costs to run the machine.

If you want to see a live version of my notes and price list, you can view it at the following Google Spreadsheet page:

https://spreadsheets.google.com/pub?key=p-fn01PSjtXuuI9uz7emDFQ

I’ll have more details of this beast to follow.

Didn’t get the house. Grrrrr

We didn’t get the house that we had the offer in on.  It sat there for years empty.  Once we put the offer on it, someone came along without a home sale contingency and put in an offer.  Ironically, I wonder if our offer motivated them to purchase it.  Maybe next time we find a house we like, we’ll just wait until our house sells.  Once it sells, we can get a better price if the other house is still available, since we would have no contingencies.

Oh well.  Live and learn.

On the bright side, we got our $1000 earnest money back!