Scott Hanselman

Here's a great list of tips on Optimzing Performance with Virtual PC (VPC)

February 20, '04 Comments [6] Posted in Programming
Sponsored By

Here's a great list of tips from my buddy J. Sawyer at MSFT.

Biggest perf tip is to put the VPC Virtual Hard Disks (VHD) to separate disk spindles from the operating system.  The biggest perf issue with VPC is related to disk I/O … and by making the VPC fight with your OS and swap disk make this issue much, much worse.  Additionally, today’s USB 2.0 and Firewire external hard drives run on a fast interface bus (Firewire does have some advantages over USB 2.0, but both are excellent), have a large (8MB) buffer and spin at 7200 RPM, as opposed to 4200 RPM for most laptop HDD. 

Also, note the tip below regarding “Run Virtual PC at Maximum Speed” … this will give a boost to the VPC’s thread priorities at the expense of the host OS applications.  Depending on what you are using the VPC for, this may be exactly what you want. 

From a PPT Deck:

Guidelines:

  • Ideally Virtual PC performance is at:
  • CPU: 96-97% of host
  • Network: 70-90% of host
  • Disk: 40-70% of host
    • However this is only for optimized guest operating systems running typical loads for a single process
    • The Virtual PC team’s aim is always to provide the fastest possible solution while not compromising compatibility
    • While virtual machines are not slow – there is always the potential for an unusual application to cause performance issues

Performance Tuning

  • Guest Performance – Preferences
  • Check “File … Options”
  • Running guest in background: Enable “Run Virtual PC at Maximum Speed”
  • Running a test on multiple guests: Enable “All running virtual machines get equal CPU time”
  • Memory
  • Host should have a minimum of 256MB, 512MB – 1024MB recommended
  • More memory is recommended for running multiple virtual machines simultaneously
  • Each guest should be allocated memory like it would on a physical machine
  • Virtual machines cannot use paged memory on the host system

Additional Disk Optimizations

  • Virtual Hard Disk size
  • Compress them
  • Defrag guest
  • Clear unused sectors ( Cipher, Eraser, etc.)
  • DO NOT attempt this step on a differencing drive – it will expand the disk to maximum size and you cannot compact it.
  • Compact using Virtual Disk Wizard
  • Enable NTFS compression on host operating system
  • Trades off performance for file size
  • Virtual Hard Disk performance
  • Place the .VHD files on separate spindle from host OS
  • If using Undo or Differencing Disks, place them on an additional spindle

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Friday, February 20, 2004 11:09:01 PM UTC
The single best way I've found to accomplish the "different spindle" goal is to have them live on an external 7200 RPM USB2.0 drive. Works like a charm.
Monday, February 23, 2004 5:08:11 AM UTC
Hey.. which step do we NOT do on a differencing drive? the Use eraser step or compress via virtual disk wizard? I'm thinking eraser right?
Marauderz
Monday, February 23, 2004 7:11:08 PM UTC
Scott,
What a timely post. I installed VirtualPC over the weekend and start using it. I found that I need to by more RAM for the host. Otherwise it runs great.

Thanks, Maxim

[www.ipattern.com do you?]
Wednesday, February 25, 2004 8:51:35 PM UTC
About getting the undo data on a separate spindle... When you enable undo drives, VPC creates a .vud file with the differences. This is stored under My Documents which, by default, is on your C drive. This hurts perf quite a bit. Move My Docs to another drive.

Also, insure that hardware acceleration is cranked in the guest OS display settings.
Tuesday, July 13, 2004 9:47:19 PM UTC
Just wondering if anyone out there knows how to stop the time synchronization with the host OS. I need the VPC image to be running with a specific date and time and every time I change the settings the host OS time and date are pushed back to the image OS.

Thanks
Thursday, January 05, 2006 3:43:28 AM UTC
Darren -

Have you tried removing the Virtual Machine Additions from your VPC? I assume that would work, since my VPC running Kubuntu Linux still has the date and time of the day I configured it. :)
Cam
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.