Performance Optimization for VMs


Collating together best practice tips for getting best performance from your VMs:


1. Software optimization:



  • Install the latest Virtual Machine Additions: for Windows Server 2003 SP1 go here http://www.microsoft.com/downloads/details.aspx?FamilyID=a963433c-193b-41ac-af6e-ab7ab2db8541&DisplayLang=en
  • Configure the Windows Server 2003 host operating system for “Best Performance“ under Performance Settings in the System Properties . Configure services priority to for “Background Services“:

  • Right-click “My Computer“, click Properties.  Click Advanced tab.  Select “Settings“ under “Performance“.

  • Exclude the Virtual Server services – VSSRVC.EXE and VMH.EXE from host anti-virus software scanning.
  • Dedicate the box: Do not run other programs on the host

2. Memory Optimization: Install additional RAM in the host computer. The amount of RAM in the host computer limits the number of virtual machines that you can run in Virtual Server 2005 more than any other factor. The host operating system and each running virtual machine require sufficient memory. To calculate the total amount of memory that you require, tote up:



  • operating system on each virtual machine.
  • programs that run on each virtual machine.
  • operating system on the host computer.
  • add up to 32 megabytes of additional RAM on the host computer for each running virtual machine.

For example:

































































Physical or virtual machine


Operating system


RAM allocated to OS


RAM allocated to virtualization



Total RAM required


Host computer


Windows Server 2003


512 MB


 


512 MB


Virtual machine 1


Windows NT 4.0 Service Pack 6a


128 MB


32 MB


672 MB


Virtual machine 2


Windows NT 4.0 Service Pack 6a


128 MB


32 MB


832 MB


Virtual machine 3


Windows 2000 Service Pack 4


256 MB


32 MB


1120 MB


Virtual machine 4


Windows 2000 Service Pack 4


256 MB


32 MB


1408 MB


Virtual machine 5


Windows Server 2003


512 MB


32 MB


1952 MB


Virtual machine 6


Windows Server 2003


512 MB


32 MB


2496 MB


Virtual machine 7


Windows Server 2003


512 MB


32 MB


3040 MB


Virtual machine 8


Windows Server 2003


512 MB


32 MB


3584 MB


3. CPU optimization: Install additional CPUs in the host computer. Disable Hyperthreading if the host has support for it. 


4. Disk optimization:



  • Use a fast hard disk subsystem in the host computer. 10K RPM drives are relatively cheap these days. 
  • Use virtual SCSI hard disks instead of virtual IDE hard disks


  • Use fixed-size virtual hard disks instead of dynamically expanding virtual hard disks
  • Run VHD files from a different physical disk than the host OS.  RAID 0 will help when writing large files.  RAID 5 will also improve performance especially on READ operations.  RAID 1+0 will be the best of both worlds.
  • Schedule host Defrag during idle time. 

See: http://support.microsoft.com/default.aspx?scid=kb;en-us;903748 and http://blogs.technet.com/brucecowper/archive/2004/12/22/330223 and http://support.microsoft.com/kb/840575/en-us

Comments (2)

  1. G.T. says:

    I tried most of that and it improves the performance, but still products like VMWare server and VMWare workstations can run the vm faster (when they are configured for max performance).

  2. Dugie says:

    Hey Tony, nice! – I’ve added your post to the collection of tips and tricks on my site:

    How to build and install a Microsoft Virtual Server Host – http://shrinkster.com/hbm

    How to build and optimize a Virtual Machine Guest – http://shrinkster.com/h4e

    thanks, Dugie