Five ways to improve virtual machine performance

As health care organizations increasingly rely on virtual servers, IT departments must work hard to maintain high performance. These tips will work on any virtualization platform.

As you consider virtualizing the servers in your organization, it is especially important to take measures to ensure that the servers continue to perform just as well if they did before you virtualized them. After all, your users don't care if a server is running on physical or virtual hardware. Either way, they expect the server to perform well -- and if it doesn't, then you can rest assured that you will hear about it.

In the health care industry, working to improve virtual machine performance after the implementation of virtual systems takes on a measure of importance beyond keeping end users happy. Depending upon the nature of the environment in which you work, a doctor's ability to quickly retrieve patient records could conceivably mean the difference between life and death.

When server virtualization first became popular, there was a notion among many IT professionals that there was no way to achieve the same performance on virtual hardware that might be achieved if the server were running on physical hardware. Although this is a misconception, it is based on an element of truth -- when virtualization first became possible, virtual servers notoriously performed poorly.

One reason is that there is a degree of overhead required by the virtualization process. With this in mind, imagine what would happen if you tried to virtualize a server already pushing its hardware resources to the max. Assuming that you placed the virtualized server onto comparable hardware, performance would suffer, as some of the server's physical resources that were previously available to the operating system and the applications are consumed by the virtualization software.

This used to be a big problem, because applications almost always used all of the physical resources available to them. Today, however, applications often use only a fraction of such resources. This makes virtualization much more practical.

Early server virtualization products also performed slowly was because they relied on hardware emulation. In other words, virtual machines did not have direct access to server hardware. Instead, the virtualization infrastructure emulated hardware for the virtual machines. This emulation layer had to direct traffic between physical and virtual hardware, which is a very inefficient process.

Five simple ways to improve virtual machine performance

Now that server virtualization has matured, it is possible to create high-performance virtual machines. The benefits of server virtualization for health care are numerous, from better server management to the ability to run legacy clinical applications.

However, doing so requires careful planning and adherence to the virtualization best practices. Keep in mind that, while there are countless ways to improve virtual machine performance, many remain specific to one hypervisor or another.

Here, though, are five tips to improve performance, regardless of your virtualization platform.

Respect hardware limitations. The No. 1 rule when it comes to performance planning is to respect the limitations of server virtualization. Every host server contains a finite amount of physical hardware. As a virtualization administrator, it is your job to figure out the best way to share the available hardware resources among your virtual machines without sacrificing performance in the process. As you allocate hardware resources, there are a few things you need to keep in mind.

First, regardless of which virtualization hypervisor you use, you cannot allocate all of the server's physical resources to the virtual machines. The hypervisor itself needs some resources in order to run, with the exact amount required varying depending upon which hypervisor you use. Therefore, it is essential that you investigate the hypervisor's system requirements before you ever even begin the virtualization process.

As previously mentioned, there is a bit of overhead associated with the virtualization process. Virtualization is not as inefficient as it was when all of the virtualization platforms used emulated hardware, but there is still some overhead that needs to be taken into account.

One way to overcome hypervisor-related overhead is to provision your virtual machines with slightly more resources than they actually require. For example, you might provide a virtual machine with 10% more memory than what would be required if the virtual machine were running on physical hardware. (The resources consumed by the virtualization process vary depending on which hypervisor you are using, so it is important to consult the documentation for the hypervisor that you are using.)

Another thing to keep in mind is that not all processor cores are created equal. Don't assume that just because an application runs fine on a dual core server that it will run just as well within a virtual machine if you allocate two processor cores to the virtual machine. CPU architecture and clock speed affect the way CPU cores perform. For example, don't expect a 3.0 GHz core to perform the same way as a 1.5 GHz core. As such, it is important to consider any differences between CPU speed and architecture before moving a server to virtual hardware.

Consider virtual server enlightenment. One underlying theme of this article is that emulated hardware is slow. While it's easy to think of hardware emulation as something that was used by older virtualization products such as Microsoft's Virtual Server, hardware emulation is still alive and well in even the most current virtualization products.

In the health care industry, working to improve virtual machine performance after servers have been virtualized takes on a measure of importance beyond keeping end users happy.

One way to improve virtual machine performance is to avoid using hardware emulation if you possibly can. How? Enlighten your virtual machines, keeping in mind that the exact method varies depending on your virtualization platform.

Microsoft Hyper-V users can achieve virtual machine enlightenment by installing the Integration Services, which are a set of drivers that allows the guest operating system to communicate directly with the hypervisor so that hardware does not have to be emulated. VMware Inc. uses the same basic concept with a component called VMware Tools. (VMware and others refer to the practice as paravirtualization as opposed to enlightenment.)

It should be pointed out that hardware emulation exists in products such as Hyper-V because the Integration Services can only be installed on certain guest operating systems. If you need to run an unsupported operating system within a virtual machine, then you will have to rely on emulated hardware.

Preemptively monitor virtual machines. Run the Performance Monitor against your servers before virtualizing them. Doing so will give you a much better idea of the hardware resources in use. This will help you identify the resources you need to allocate to the server once it is virtualized.

Use overcommitment sparingly. Overcommitment refers to allocating more resources than what is physically present in the host server. For instance, it is sometimes possible to allocate more memory, disk space, and CPU cores to your virtual machines than what physically exists within the server. Depending upon the types of virtual machines that you are using, you might be able to get away with some hardware overcommitment. As a general rule, however, your virtual machines will perform better if you avoid over committing resources.

Don't tempt fate. It is important to accept that not all physical servers are good candidates for virtualization. For instance, some applications, such as picture archiving and communication systems (PACS), are so demanding that they are better suited to a dedicated server. Likewise, some vendors do not support their applications for use in a virtual environment. In any case, don't be afraid to leave an application running on physical hardware if doing so will provide better performance.

Brien M. Posey, MCSE, is a Microsoft Most Valuable Professional for his work with Windows 2000 Server and IIS. He has served as CIO for a nationwide chain of hospitals and was once in charge of IT security for Fort Knox. Write to him at [email protected]or contact @SearchHealthIT on Twitter.

Dig Deeper on Electronic health record systems

Cloud Computing
Mobile Computing