Computer hardware virtualization is a powerful feature that lets you use fewer physical servers. When this feature is used correctly, hardware virtualization can yield both of the following benefits:
- Hardware runs more efficiently.
- Hardware uses less physical space and less power.
However, virtualization is not without drawbacks. Virtualization technology runs counter to performance. Virtualization does not make programs run faster.
Virtualization is the process of dividing a physical server to run more workloads. Therefore, virtualization makes hardware more efficient. However, if you decide to consolidate the workloads of many physical servers onto a single physical server that runs virtualization technology, there is a drawback. Those servers no longer have dedicated I/Os for CPU, memory, hard disk, and network resources. Instead, the servers now share the same I/O. In this situation, you may experience resource bottlenecks.
While resource bottlenecks may occur when you use virtualization technology, modern computer hardware is generally fast enough to help decrease performance problems. However, one of the keys to the successful use of virtualization technology is to understand and to help reduce these resource bottlenecks.
This article describes tips and methods to help optimize virtual machine performance when you run guest operating systems in Microsoft Virtual Server 2005.
To optimize the performance of virtual machines that run in Virtual Server 2005, use one or more of the following methods.
Install Virtual Machine Additions
We recommend that you install Virtual Machine Additions in the guest operating system. This step is frequently overlooked when an administrator configures a guest operating system in a virtual machine. The features in Virtual Machine Additions are designed to improve the integration of the guest operating system with the host computer. Virtual Machine Additions also improves the performance and the manageability of the guest operating system. For more information about Virtual Machine Additions, see the Installing Virtual Machine Additions
topic in the Virtual Server Administrator’s Guide
Install additional RAM in the host computer
We recommend that you install as much RAM as you can in the computer that runs Virtual Server 2005. 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, consider all the following:
- Allocate sufficient memory for the operating system on each virtual machine.
- Allocate sufficient memory for the programs that run on each virtual machine.
- Allocate sufficient memory for the operating system on the host computer.
- Allocate up to 32 megabytes of additional RAM on the host computer for each running virtual machine.
The following table illustrates these memory allocations.
|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|
These memory allocation values are suggested values. You experience increased performance when you allocate additional memory for each virtual machine and for the host operating system.
Install additional CPUs in the host computer
When you install additional CPUs in the host computer, you can run more virtual machines. Virtual Server 2005 is heavily threaded so that you can scale Virtual Server 2005 on more advanced computers. Currently, each virtual machine operates as a uniprocessor computer. In this situation, one thread on the host computer acts as the processor for each virtual machine. When you run multiple virtual machines, multiple threads act as multiple virtual processors. Virtual Server 2005 schedules these multiple threads across all the available CPUs in the host computer. Therefore, virtual machines perform better on a host computer that has multiple CPUs.
Use a fast hard disk subsystem in the host computer
Like other disk-intensive programs, Virtual Server 2005 benefits from a fast hard disk subsystem on the physical server. Serial ATA (SATA) hard disks are faster than traditional IDE hard disks. Typically, SCSI hard disks are faster than both SATA and traditional IDE hard disks. The use of a striped RAID configuration provides even better performance and provides data redundancy. If you install Virtual Server 2005 in a storage area network (SAN) environment, and if you want to host virtual machines on a SAN, consider investing in host bus adaptors that have multiple fiber channels. With enough virtual machines and hard disk activity, you might saturate a fiber channel connection. To determine whether the fiber channel connection is saturated, monitor the performance of the fiber channel adaptor on the host computer.
Put virtual hard disks on different physical disks than the hard disk that the host operating system uses
Put virtual hard disks on different physical disks than the hard disk that the host operating system uses.Additionally, put virtual hard disks on different physical disks than the hard disk that holds the host computer's page file.
Use virtual SCSI hard disks instead of virtual IDE hard disks
When you configure virtual machines, use virtual SCSI disks instead of virtual IDE hard disks. A virtual SCSI disk can make disk activity perform up to 20 percent better. A traditional IDE hard disk is limited to one transaction at a time on the bus. A SCSI disk can handle multiple transactions at the same time on the bus. Therefore, we recommend that you use SCSI virtual hard disks when you can.
Use fixed-size virtual hard disks instead of dynamically expanding virtual hard disks
The two most common kinds of virtual hard disks are the fixed-size virtual hard disk and the dynamically expanding virtual hard disk.
When you create a fixed-size virtual hard disk, all the space that the virtual hard disk requires is reserved. Therefore, if you create a 100 gigabyte (GB) fixed-size virtual hard disk, 100 GB is reserved on the physical hard disk. The space on a fixed-size virtual hard disk is more likely to be contiguous than the space on a dynamically expanding virtual hard disk. Additionally, the file size of a fixed-size virtual hard disk does not have to expand before data is written to a file in a virtual machine. Therefore, fixed-size virtual hard disks generally provide better performance.
In a dynamically expanding virtual hard disk, the size of the .vhd file grows as data is written to the virtual hard disk. By default, Virtual Server 2005 creates this kind of virtual hard disk. When you create a dynamically expanding virtual hard disk, you specify a maximum file size. This size restricts how large the virtual hard disk file size can become. For example, if you create a 100 GB dynamically expanding virtual hard disk, the initial size of the .vhd file is about 3 megabytes (MB). As the virtual machine uses the virtual hard disk, the size of the .vhd file grows to hold the new data. Because dynamically expanding virtual hard disks grow only as required, a dynamically expanding virtual hard disk is less likely to use contiguous space on the host computer's physical hard disk. Therefore, depending on how fragmented the host computer's physical hard disk is, the performance of the virtual machine might decrease.
Install multiple network adaptors in the host computer
One of the least expensive ways to make virtual machines perform better is to install multiple network adaptors in the host computer. Instead of configuring all the virtual machines to use a single physical network adaptor, configure groups of virtual machines to use virtual networks, and configure each virtual network to use a different physical network adaptor. This configuration helps spread the network traffic across multiple network adaptors.
Do not run other programs on the computer that runs Virtual Server 2005
We recommend that you do not run other programs on the computer that runs Virtual Server 2005. Another program may compete with Virtual Server 2005 for resources. Therefore, Virtual Server 2005 might not have sufficient resources. This problem could affect all the running virtual machines. Although sometimes you must run other programs or services on the Virtual Server 2005 host computer, such as when you must run a program that cannot run in a virtual environment, we recommend that you avoid this practice.