I've been reviewing some of the points of discussion in recent conversations with Kusnetzky Group clients in recent posts. This post focuses on how virtualization impacts application performance.
Some suppliers are downplaying the impact their technology has on application performance and yet adding another layer of software or migrating many applications from their own separate machines to a single larger server is likely do something.
Expected impact on application performance
Let's look at each type of virtual processing software (confused by what virtualization layer I'm referring to? Look here to see the Kusnetzky Group reference model) and consider what impact that layer's likely to have on application performance
- Grid computing monitors, high performance computing monitors - Applications that have been properly decomposed into separate functions or whose data has been segmented into components so that an "application" can be spread over several machines are likely to see performance increases over running those same applications on a single machine. The goal in using this software is usually to accelerate the performance of a single or small number of applications.
- Single-system-image clustering monitors - applications are likely to remain on a single system until there's a failure. Since the clustering monitor consumes some of the system's time and the goal of using this technology is creating a unified management and execution domain rather than increasing the performance of any one application, performance degradation is expected.
- High availability/failover clustering monitors - as with single-system-image clusters, applications are likely to remain on a single system until a failure occurs. Performance degradation is likely to occur, but to a smaller degree than with a single-system-image clustering product. Why? HA monitors are doing less than a single-system image clustering monitor and so consume less processing power.
- Workload management monitor - multiple instances of applications are likely to be running on different machines in the cluster. So, more people will be able to access the applications but, each instance is likely to see a reduction in performance because its sharing the machine with the workload management product and other applications. The goal here is usually scalability not performance.
- Virtual machine software - multiple applications, each with its own operating system, are being hosted on a single machine. The goal here is consolidation and, possibly, agility rather than application performance. Depending upon the hypervisor and the hardware capabilities of the processor, reductions in application performance are expected.
- Operating system virtualization/partitioning software - multiple applications, each in their one partition, are being hosted on a single machine. Since there is still only a single operating system in use, reductions in application performance are less severe than with virtual machine technology but, they are still expected.
Each virtual processing technology can add value to the organization's IT infrastructure. Organizations, however, must understand that each also introduces additional stress on the computing resources.
What has your organization seen when using these types of virtual processing software?