Virtualization Performance Basics
Virtualization Performance vs. Traditional IT Performance
Most servers in production today run only a single application. While this approach ensures the smooth operation of the application, it uses only a fraction of the IT resources available on the underlying hardware.
In contrast, virtualization makes it possible to run several applications at the same time on a single physical server by hosting each of them inside their own virtual machine. By running multiple virtual machines simultaneously, a physical server can be driven to much higher utilizations, albeit with some performance overhead.
Virtual machines that reside on the same physical server share underlying hardware resources, but are completely isolated from each other as if they were physically separated. This means that if one virtual machine experiences availability problems, it will not affect the availability of applications running on the other virtual machines on the server.
In the event that the underlying hardware itself experiences performance or availability problems, VMware provides the ability to migrate live applications automatically from one physical server to another with no interruption in service. This capability holds enormous advantages over physical infrastructures when it comes to backup and recovery, but VMware also leverages live migration to enable exclusive capabilities such as dynamic policy-based allocation of hardware resources.
VMware solutions virtualize four key hardware resources: processing, memory, storage and network, using a best-of-breed hypervisor to allocate these resources dynamically to balance changing application needs. The sections below describe the performance implications for each of these resource types.
Performance Implications for CPUs
CPU virtualization adds varying amounts of overhead, depending on a number of different factors. For processor-intensive applications, any CPU virtualization overhead likely translates into a reduction in overall performance.
However, VMware solutions have the ability to balance processor loads in a highly efficient manner, and VMware virtual machines can fully leverage multi- cores and multi-processor configurations, making it possible to run processor-intensive workloads such as databases and e-mail servers on virtual machines without adversely affecting application performance.
Performance Implications for Memory (RAM)
Virtualization does not decrease the amount of RAM required to run an application and its host operating system, and like any software, the virtualization layer requires its own portion of RAM. As such, memory is often a limiting factor in determining the total number of virtual machines that you can consolidate onto a single physical server.
VMware technology adds very little memory overhead, offering advanced memory management mechanisms such as RAM over-commitment and transparent page sharing that automatically expand or contract the amount of RAM allocated each virtual machine as application loads increase and decrease. This capability lets you achieve a higher level of server consolidation than is possible with traditional static virtual memory.
Performance Implications for Storage
Virtual machines run complete, unmodified operating systems and as such require several gigabytes (GB) of storage space to hold all applications, documents, device drivers and other data. When multiple virtual machines are consolidated on a single physical server, they can impact I/O performance with their combined file size and simultaneous need for rapid access to stored data.
VMware solutions help to improve I/O performance through the VMware vStorage VMFS, which provides virtual machines with simultaneous access to shared data stores. Centralized storage helps reduce latency and increase throughput, and provides the foundation for unique capabilities such as live migration and consolidated backup.
Performance Implications for Networking
Networking sizing and performance considerations in a virtual infrastructure are very similar to networking considerations in physical IT environments. In most cases, the network throughput of virtualized workloads is comparable to the network throughput of physical workloads.
VMware offers an ideal platform for secure, high-speed networking between virtual machines on a single physical server, supporting network topologies that normally depend on the use of additional hardware to provide security and isolation. You can also network virtual machines across physical servers with transparency and high throughput, as each virtual machine gets its own IP address and can utilize up to four virtual network interface cards (NICs).
Keeping Time in Virtual Machines
Industry-standard PCs contain several different devices that can be used to keep track of time. Using several of the devices in combination is important in many operating systems, and it is necessary to support all these devices in a virtual machine in order to monitor application performance and determine if service level agreements (SLAs) are being met. This can be problematic because the timing of one virtual machine is not synchronized with other or with the timing of the physical host server.
VMware solutions use a patent-pending technique that allows the many timer devices in a virtual machine to fall behind real time and catch up as needed, yet remain sufficiently consistent with one another that guest software is not disrupted by anomalous time readings. Learn more about specific timekeeping issues and problems along with suggested workarounds by reading the VMware white paper, "Timekeeping in VMware Virtual Machines".