A few tips to help your Virtual PC performance.

Posted on 3/31/2007 @ 4:43 AM in #Vanilla .NET by | Feedback | 15271 views

I use Virtualization a *LOT*. So figured, it wouldn't be a terrible idea to share a few tips that have made my virtual life easier.

  1. Virtual Server seems to offer much better performance than Virtual PC, especially if you are running multiple virtual machines.
  2. External USB drives are not a great idea. The data transfer speeds are advertised as 400 mbps, and the fineprint says 30mbps sustained and 400mbps peak. 30mbps is not enough to run a VPC smoothly.
  3. Defrag both the host PC HDD and the Virtual HDD.
  4. Sometimes, too much memory to the VPC can be a bad thing, especially if it is at the expense of too little memory for your real PC. As a general rule of thumb, the paging file on your real machine should be around 800MB-1Gig. I keep a bare bones, hella strong machine, which runs only VPCs. It has barely any programs running, except virtual machines. When nothing is running, it's page file is about 200 megs. With 4 virtual machines running, it's page file is around 1 gig. (4 gig total RAM on that box).
  5. Turn of every service you can on the real PC - SQL Server 2005, Outlook, MSN Messenger especially. DEFINITELY shut down anti virus.
  6. Have the VPC keep it's paging file on a disk, that is actually a RAMDisk. Don't ignore rule #4 when you do this.
  7. Laptops, with the exception of XPS laptops and equivalent, are terrible at running VPCs. It is almost better to invest in a new HDD and run a real PC, rather than Virtual PC on those portable laptops.
  8. If you have 2 Hdds on your system, keep the VHD on a seperate spindle than the paging file of your host OS.
  9. Terminal service into your VPC, rather than use the ActiveX control - seemed to make a difference for me atleast. If you have two computers, terminal service from an entirely different machine to the machine running the VPC. Turn off desktop backgrounds.
  10. Use Fixed size VHDs rather than dynamic.
  11. Few more tips from Andrew Connell.
  12. Vista specific tip, I've created two batch files to start and stop services that are pigs as far as memory usage is concerned. The "start" batch file is shown as below -

    net stop WSearch
    net stop UxSms
    net stop mssqlserver

    Create an equivalent batch file to "start" the above services also. Run the "stop" batch file as administrator to bring your memory usage down to below 500 MB, and run the virtual machines then.
  13. Vista specific tip, If you have 4 gigs of RAM or more, use Vista 64bit to run VPCs. Otherwise, stick in fast enough flash drive to use Readyboost - seems to make a noticeable difference.

Sound off but keep it civil:

Older comments..

On 2/4/2007 9:10:55 PM Jeff Schoolcraft said ..
How about external drives with eSATA connections? I've not used them, but they're supposed to get sustained transfer to 115mbps...

On 2/4/2007 9:18:48 PM Sahil Malik said ..
Schoolie, I've never tried them, but I'm intrigued - that may just be the only practical solution to VPCs on a non-break-your-back laptop. Can you connect eSATA to a laptop?

On 2/4/2007 9:23:43 PM Jeff Schoolcraft said ..
They have PCMCIA cards for this, http://www.cooldrives.com/2ra01espccal.html (an example).

Like I said, I have no experience with these. But I did manage to find a post from Jeff Atwood talking about this: http://www.codinghorror.com/blog/archives/000714.html

On 2/4/2007 9:29:47 PM Sahil Malik said ..
Thats awesome man !! If anyone has actually used such hardware, please enlighten us with your experience?

On 2/4/2007 11:44:53 PM Arnaud said ..
Thanks for sharing those tips. It'll be usefull for me, since I also use virtualization a lot.

About rule #7: the main problem with laptops when it comes to virtualization is their hard drive. When buying my machine, I opted for a 7200 rpm dist, which was obviously more expensive (I could get a slightly bigger 5400 rmp drive for the same price) bug gives me really good performance.

In fact, this is also a must-do for those who compile code, which also involves a lot of hard disk work.

On 2/5/2007 3:08:40 AM Sahil Malik said ..
Yep. Lot of people overlook the RPM of an HDD, because lot of vendors hide it from public eye. They only talk of "Gigabytes" :).

On 2/8/2007 8:49:02 PM AC [MVP MOSS] said ..
Arnaud - Spot on... the RPM of the drive makes a huge difference. I opt for laptops with a modular bay where I can stick a 2nd drive in lieu of the optical drive which I rarely need.

On 4/11/2007 12:28:11 AM Anonymous said ..
Thanks for the tips, but i'll like to know if its possible to play old games using Virtual PC. I'm currently running Vista and i'm using Virtual PC only to emulate a older OS like XP or 98 to play a old game like Resident Evil 2.

The system requirements for Resident Evil 2 isn't that high and I believe that the cheap onboard graphics that the Virtual PC emulates meets its requirements.

Is it possible to run games in it though?

On 4/23/2007 8:28:37 AM Just Clear said ..
Fantastic - such simple little rules. Defragging the virtual disk never occured to me but its really helped.


On 8/21/2008 10:51:42 AM Jim said ..
Virtual PC 2007 includes only basic 2D graphics support. Older games that do not require video acceleration should run just fine, but even Direct Draw games can run sluggishly.

On 6/17/2009 3:23:01 AM Pongi said ..

I have a problem with Virtual Serial Port communication. I work for a Car Industryal Company and I have to use a DOS based software, called PG2000. With this software I can programing PLC automation systems. I can communicate between PG2000 and the PLC system with RS232 port. To do this I have to start my software not newer then Win98. But I have WinXP on my Laptop and I want to use this PG2000 under a Virtaul Win98. I have to do this because the PG2000 use the serail port as a hardver element and if I run this software under XP i can't communicate with the automation system, what I want to programming because WinXP has this WinAPI thing. So I have allready a Virtual Win98, I can run this Dos based PG2000, and I have on my Laptop the Hardware Virtualization also on. I have choosed the right COM port, but I can't communicate with the system. I have a Dell Latitude E5500. Can you help me, what can be?


Best regards,


On 8/26/2010 2:01:48 AM Qaiser Shameer said ..
how i could detect my usb drive in virtual pc 2007

bcoz my most data is in flash


Best Regards

Qaiser Shameer