ScottD's Musings

C#, .NET, ASP.NET, Automated Unit Testing, Middle Tier Development, and various topics!

News

<script src="http://jobburner.com/adclient.ashx?/0/6" type="text/javascript"></script>

Visual C# MVP

»telligent Bloggers

.NET Community

About Me

Blogs I Read

Cool Utilities

Lists - Others

Lists - Scooter's

Microsoft Events

Other Posts

Laptop Rebuild: Virtual PC for *ALL* Development?

I'm close to rebuilding my Dell Latitude C840 laptop, after buying a new 7200rpm Hitachi hard drive.  With this build, I'm seriously considering installing just the basics on the laptop (Office, Firefox, Project, WinZip, BlogJet, SharpReader, etc... and Virtual PC).  Then, I'm considering using VMs for my development environments (VS 2003, VS 2005, etc...).  I like the idea of having a low-serviced build on the laptop, and allowing the VMs to do all my design/development work.  I'm not doing much mobility development (issues with mobility/emulator in VPC/VMWare), so that shouldn't be an issue.  For me, when the laptop takes FOREVER to load up all the services related to development, when I want to simply check email, is a pain! 

For all my VS 2005 work, I have a "LowPowerMode.bat" batch file, which executes a bunch of "net stop" commands against many of the services installed on my machine (SQL, MSMQ, etc...) just to free up enough memory to run VMs well (I have 1 GB installed).  In addition, I am running VMs on other physical hard drives (not the install drive), which should help performance as well.

My questions for you: 

Are you currently running all your development in VMs?  If so, are you happy with the performance?  OR do did you try it and had to revert back?  Any specific issues that caused problems?

Comments

Matt Berther said:

Scott,

Ive been developing this way for the past year, and I can honestly say there is *no* way I would ever go back.

The best purchase for me was RAM and a fast external hard drive. I have a Dell D800 with 2gb of RAM and a Seagate 160gb 7200/8mb USB2 drive.

Because of the fast hard drive over USB2, the VPC images sometimes seem to run better than the regular OS. ;)

The best part is that if I really screw up a partition, it takes virtually no time to come back online, because I have all of my base VMs saved off and sysprepped (http://www.mattberther.com/2005/01/000594.html). I can have a new VM online in under 5 minutes.

# February 14, 2005 12:52 PM

Rob Cannon said:

I have a Dell with a 7200rpm drive and 1GB of RAM. I have been working this way for several month and I am fairly happy with the process. As a consultant who works on several projects, being able to have different configurations for servers works very well. They only problem is when you have to update a tool across several images.

And my hard drive (60BG) doesn't have enough room to easily manage more than three or 4 images at a time.

Oh, and VPC doesn't deal with the large ISO files that are coming for VS2005.

And VPC doesn't take advantage of my wide laptop display.

There's probably a few more warts, but overall it's worth it. ;)
# February 14, 2005 1:25 PM

Hugapug said:

It's interesting to see people doing this. I would like to try this out but I have some questions first. In terms of performance, which one is best for having a VM with a development IDE + SQL 2000 + IIS, VPC2004 or Virtual Server 2005? Also, I am doing some development with MS Speech Server and I need my USB headset to test out the programs. Can USB devices transparently connect with the virtual machines too? Thanks.
# February 14, 2005 1:46 PM

Drazen Dotlic said:

I have a Dell Inspiron 8600 with 7200rpm hard drive and 1GB of RAM (processor speed does not seem to matter). I get quite acceptable performance with VMWare, but not at all with VPC (the same happened on similarly equipped desktop machine). Mainly because of memory, you cannot run more than 2 VM at the same time - running a server and client OS along with your host OS is barely doable.
It is GREAT for moving targets like Whidbey CTP (or any other CTP for that matter) - I have prebuilt images that I simply unzip and I'm ready to go.
# February 14, 2005 3:02 PM

Paul D. Murphy said:

Invest in VMWare. Virtual PC might be free if you have MSDN, but it's has a VMWare 2.0 featureset, constantly thrashes the disk and managed memory very poorly. For example I have a machine with 2Gb of Ram in it. I created 3 Virtual PC images with 512 Mb of ram on each one. Virtual PC wouldn't even let me run it. VMWare didn't care and they all ran just fine.

Sorry I like Microsoft alot, but it's pretty clear they bought Virtual PC to build a server product out of the technology, not to support a desktop client.
# February 14, 2005 7:17 PM

Kevin Cunningham said:

What's up Scott!

Personally I run the IDE that I do most of my work in directly on my laptop's OS. The overhead of the VPC for everyday dev (i.e. 9+ hours/day) is just way too much (to me) for a laptop (IMO) to warrant moving it off to a separate image. Way to sluggish - maybe I am just too impatient :) . I am running a Dell 8500 with 1GB RAM and also have the TravelStar 7K60. I also 2nd Rob's comment about VPC not running full screen on a widescreen laptop - grrrr.

If I have to I will run all other environments within an VPC image from an external HD - like Matt. On a side note, speed wise USB 2.0 and/or Firewire 400 can't beat direct reading/writing from your internal drive no matter how fast your external drive is. ATA/100 is 100MBps while USB 2.0 tops out at ~60MBps (480 Mbps), so IOW the communication port will max out before the drive transfer rate will. If you are bored or curious dload HDTach (http://www.simplisoftware.com/Public/index.php?request=HdTach) and check out the difference in perf reading/writing to your internal/external drive. It's close but not as fast - enough to deal with though. Also, Firewire read/write burst are faster than USB 2.0 and tests have shown it is more efficient -and ultimately a better solution - than usb 2.0 for lots of read/writes - mainly due to the spec allowing direct memory access (i.e. bypassing operating system limitations) and not to mention it is less CPU intensive.

I like running from my external because I don’t like keeping 10+ 4-10GB images on my main HD. Running an image locally chews up too much room, thrashes the internal drive, heats up my laptop enough to cook and egg and is just a bad experience. One thing I am not certain of is how much less/more overhead pushing the images off to an external hard drive creates for the OS. Minimally I would think it would reduce contention for the main internal drive but at the same time it creates tons of overhead coordinating the communication from the ports (check out your CPU util when copying a file - yikes) Maybe someone can enlighten us.

To me, the overall the benefits of pushing off the images for some work - like geeking with throw away build of VS.NET 2K3 - to an external disk far out outweigh keeping them locally. But for everyday stuff I just can't deal with it. Plus it’s an excuse to rebuild once every VS.NET release.
# February 14, 2005 10:51 PM

David Gottlieb said:

Scott,

Yes, I use VPC for all of my development. We used to use VMWare but had later decided that VPC was better and it was free since we had our MSDN subscriptions. This has saved us LOTS of cash on development machines as well as test boxes. For running my whidbey builds, I use VPC as well. I keep a back up of the virtual hard drive and if something pukes, I just restore. Simple as that. I've been doing this for almost 3 years now.
# February 17, 2005 10:08 AM

TrackBack said:

I'm real interested in running VPC for all my dev needs.&nbsp; The following
are a few links I found:...
# March 16, 2005 11:14 PM

Cameron Fuller said:

Hey Scott, I am not a developer (as you know) but for testing on Infrastructure related stuff I live completely within Virtual PC. My laptop is a 1.7 with 2 gigs of memory, and I use a total of three drives (one external firewire, one external usb 2.0 and the onboard drive). I have been very impressed with the performance and flexibility given by working with virtuals. If you are running VPC you should also seriously consider compressing them. I've done a writeup about it at http://cameronfuller.spaces.msn.com/.

# July 14, 2006 7:08 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)