Microsoft operating system virtualization products such as Virtual Server, Virtual PC, and Hyper-V support both dynamically-expanding and fixed-size virtual hard disks (VHDs). With the dynamically-expanding kind, the size of the VHD expands as more and more data is written to it. For fixed-size disks, the size of the VHD is fixed to the size you indicate when you create the disk. While dynamically-expanding disks can be more efficientâ€”they take up only as much physical disk space as they needâ€”their performance can be poor because of the extra processor cycles needed to expand the disk. Fixed-size disks on the other hand perform better, but they can take up a lot more physical disk spaceâ€”plus you need to decide at the beginning how big they will need to be.
When you are running virtualized operating systems in a production environment, itâ€™s usually best to use fixed-size disks because of their better performance. But before you create a fixed-size VHD for a new virtual machine, keep three things in mind:
1. Create your VHDs on a different physical disk than the one your host operating system resides on. Otherwise, reads/writes to your system drive will contend with reads/writes to your VHD and will cut into the performance of your virtual machines.
2. Always defragment any physical hard drive before creating a large, fixed-size VHD on that drive. If you donâ€™t do this, it can take a long time (sometimes many hours) just to create the new VHD. And of course the performance of your virtual machine will suffer afterwards because of the fragmentation of the VHD file.
3. Be sure to use physical hard drives that are as fast as possible for hosting your VHD files. A speed of 7200 RPM should be considered the minimum, while 15,000 RPM drives can make your virtual machines scream.
Got any tips of your own for optimizing virtual machine performance? Feel free to email me your comments and suggestions.