Now that we've looked at how to optimize Microsoft Virtual Server through hardware configuration, let's consider...
some ways to achieve the same thing through software configuration.
1. Through Windows and Virtual Server Updates. Connect to Microsoft from both the host and guest operating systems and download all updates. On the host, also check to see if there are any Virtual Server updates as well. (I've had success is using the latest service pack beta as well)
After installing any service packs or upgrades on the host server, be sure to upgrade the "Virtual Machine Additions" on each guest operating system. Note: You may have to manually uninstall the prior version from Add/Remove Programs.
2. Through Page file and performance options.. Set the Host server to use Memory for foreground programs: Control Panel>System>Advanced tab>Performance button>Advanced tab>Memory Usage set to "Programs." This one was surprising to me, but it was a recommendation made by a member on the Microsoft Virtualization team.
- Disable the Windows Paging Executive on your host and VM so that Windows executive components never get paged. You can disable the Paging Executive only by editing the registry, which you do at your own risk and only after backing up your registry with the Windows backup utility (by selecting System State).
- Change the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \Session Manager\Memory Management\DisablePagingExecutive key from 0 to 1. This is to protect against performance loss due to disk contention/over access. Do this only if you have allocated enough RAM to the host server (at least 1 GB)
You might even want to disable paging altogether on your host server as well. But do so only if you have enough RAM available for the host server (again, at least 1 GB). Do this at your own risk; this will keep the host from being able to generate a complete system dump if it fails.
Note: Microsoft's Virtual Server blog team recommends allowing Windows to manage Virtual Page file on guest operating systems, so set it to System Managed Size. However, I have had success with just assigning the same fixed amount to both the min and max fields.
3. Exclude VMs from antivirus screening. Make sure your antivirus software (and antispyware programs if possible) is excluding your VM software processes (e.g., Virtual PC.exe) and files (e.g., virtual hard drives, settings files, etc.). Basically, tell your realtime scanning engine to exclude any VHD, VSV and VUD files. This does not represent a huge security risk for viruses as these files are not executable, they are database files only.
4. Through using virtual SCSI drives. The default for a VM is to use IDE drives. Virtual IDE drives are slow, just like their physical counterparts. Virtual SCSI drives communicate faster (like their physical counterparts). Again, I found that the Microsoft Virtual Server blog site recommended installing Windows onto the default, fixed Virtual hard disk (which is IDE), then, post-installation, migrating the virtual disk over to a virtual SCSI controller. Here's how:
- After installing onto an IDE drive, shut down the guest operating system
- Edit the Virtual Machine's configuration to add a SCSI controller to your virtual machine.
- Boot the virtual machine.
- Uninstall and Reinstall the Virtual Machine Additions.
- Shut down the virtual machine.
- Change the virtual drive from the IDE controller to a free channel on the virtual SCSI controller
5. Make the most of defragmentation. Defragment your host machine's physical disks and defragment and compact your Virtual Machine's virtual disks. Defragmenting always minimizes disk I/O, and compacting your VM will increase performance. A slimmer machine will consume less RAM, leaving more RAM for the host system cache. Note: Running a defrag can cause performance issues, so schedule for off or non-peak hours.
6. Dedicate a physical network interface card (NIC) to your guest operating systems. On the host computer that has multiple physical NICs, this can be done by:
- Go to the Control Panel-->Network Connections
- Right-click the network card that you want to dedicate to virtual machines-->Choose 'Properties.'
- Uncheck all the options except the 'Virtual Machine Network Services' entry.
Also, while you are in the Network Connections window:
- Choose the Advanced menu-->Advanced Settings.
- Select the Adapters and Bindings tab.
- Move the dedicated NIC you chose for your guest operating systems to the top of the list to give it priority.
This will give VMs priority access to the network interface if you cannot remove the host from using the NIC (such as if the server only has a single NIC)
Software tips not specific to Virtual Server
The following three tips are not specific to Virtual Server, but deserve mention.
1. Disable all advanced features to speed up Remote Desktop sessions. Control Panels-->System-->Properties-->Advanced -->Performance Settings Button-->Choose Adjust for best performance.
2. Do not use a desktop background.
3. Stop Explorer from searching the network at odd times. Open My Computer-->Tools menu-->Folder Options-->View tab-->Uncheck "automatically search for network folders and printers"
About the author: Tim Fenner (MCSE, MCSA: Messaging, Network+ and A+) is a senior systems administrator who oversees a Microsoft Windows, Exchange and Office environment, as well as an independent consultant who specializes in the design, implementation and management of Windows networks.
More information on this topic:
- Tip: Migrate physical machine into virtual machine with MS Virtual Server
- Topics: Virtualization strategies
- RSS: Sign up for our RSS feed to receive expert advice every day.