Virtual Workloads & Containers Virtualization Performance

The best virtual management tools are useless when their virtualization platform is not of good performance. Although high performance is a critical part of any IT technology, the nature of virtualization makes it exceptionally critical. When consolidating dozens or hundreds of virtual workloads onto a single host, the resulting performance of hosted applications must meet or beat their effective physical performance to be of value. As such, when considering virtualization solutions for Linux, those that have the greatest potential for high performance should be weighted highly in the decision‐making process.

Note: Raw performance should be among the highest‐weighted factors in any determination about virtualization solutions.

For many IT environments, a central goal in virtualization is consolidation. This term embodies the desire to collocate as many virtual workloads onto a single host as possible with no appreciable loss of performance. When consolidation is a goal for virtualization, enterprises need the assurance that the virtualization platform has the capability to support large numbers of simultaneously hosted virtual workloads. As was touched on in the first article of this series, the virtualization architecture selected can have a major bearing on that expectation of performance.

For example, with some types of Hardware Virtualization, as the number of simultaneously hosted virtual machines on a single server increases, performance can deteriorate significantly. Knowing this rate of performance degradation as the level of consolidation rises can be crucial to understanding what solutions will meet your needs and which will not.

Containers Virtualization is unique among virtualization architectures in that it does not require a segregated and isolated OS instance for each collocated workload. This fact brings about some special enhancements to performance that make Containers Virtualization a compelling solution for some virtualization workloads. The next few sections will discuss some of those benefits. Following will be a discussion on some particularly good fits for Containers Virtualization in the IT environment.

No Hardware Emulation

Any particular container hosted atop a Containers Virtualization solution will be run leveraging the real drivers on that system. This is not the case with essentially all other virtualization architectures in the market today. In the case of Hardware Virtualization, the use of emulated or synthetic drivers is required for encapsulated virtual machines to interoperate with the hypervisor layer and eventually the physical hardware below. A container's access to hardware resources is done directly with those resources as opposed to being proxied through a hypervisor layer. For example, accessing the host's disk to read or write data is an action that is accomplished directly with the disk subsystem.

This lack of emulated or synthetic drivers within each virtual workload eliminates the resource overhead cost associated with request translation from physical to virtual and back. The end result is a significant improvement in performance across all collocated containers as well as within the host itself.

Higher Levels of Memory Sharing

With many Hardware Virtualization architectures, the allocation of memory resources to virtual machines is done on a per‐virtual machine basis. This has the tendency of isolating large quantities of host memory for each virtual machine. Some virtualization solutions provide workarounds for this behavior through memory balloon drivers or page table sharing. However, even with these assisting technologies in place, the assignment of memory still occurs based on the needs of an entire and segregated virtual machine.

With Containers Virtualization, the layer of abstraction is not placed at the level of the individual virtual machine. Instead, it is placed within the individual process requirements of all virtual machines. By refocusing the layer of abstraction down to individual process requirements, collocated virtual machines that make use of similar resources—such as DLLs or application processes—have the ability to share their memory mapping on the host. This has the effect of significantly reducing the total amount of memory that is required to support running containers.

Real‐Time Resource Allocation

Considering the memory management techniques discussed in the previous sections, these process‐focused techniques provide benefit to containers in terms of memory allocation as well. With Containers Virtualization, the resources assigned to any individual containers have the ability to be modified in real time and without the restart of the container. This is the case because individual container configurations are not reliant on the allocation of resources as they are instantiated. Rather, the process‐centric focus on container resource needs allows administrators to adjust assigned resources to meet the requirements of the workload.

Note: The processing of virtual workloads is significantly optimized when this capability is integrated with monitoring capabilities that watch for and automatically adjust resource levels as conditions require.

Enhanced Caching Across Collocated Containers

With virtual machines running atop Hardware Virtualization architectures, caching is accomplished on a per‐virtual machine basis. Thus, cache hits for one virtual machine have no bearing on the performance of another. Assigned cache for one virtual machine cannot be shared with another, forcing a horizontal scaling of cache resources as the number of simultaneously hosted virtual machines goes up. This has a tendency to limit the maximum number of virtual machines that can be hosted on a single server.

Real World Examples

Considering the previous section, there are a number of areas within the IT environment where Containers Virtualization has a particularly good fit. The types of workloads you expect to virtualize will have a significant impact on the success of your project. Thus, with the understanding of the specific performance benefits discussed earlier, consider the use of Containers Virtualization in the following environments:

  • High resource use. Containers Virtualization's performance benefits can increase the overall level of consolidation possible for virtualized workloads. Alternatively, those same performance enhancements can be leveraged with lower rates of consolidation to bring otherwise non‐virtualization candidates—those with high levels of resource use—into the virtual environment.
  • Disaster Recovery/Business Continuity. As discussed in the previous article in this series, Containers Virtualization includes motioning technology that enables migrated containers to be fully relocated—including their on‐disk data—during a migration event. When this capability is combined with the increased level of consolidation gained through its performance benefits, a larger number of servers can be collocated on a recovered server in the case of a disaster recovery or business continuity event.
  • Test/Development. Test and development environments suffer under the maintenance needs of rapid environment deployment. This is the case because the running of tests often requires an environment rebuild for a proper test procedure to run. Containers Virtualization's disk space conservation and rapid deployment capabilities gained through the use of templates allows administrators to meet the needs of testers and developers.
  • Hosted desktop. Containers Virtualization is perhaps best suited for environments where each individual container has a high level of similarity to others on the same host. Memory and cache benefits are gained when the workload in each collocated container is functionally equivalent. This is often the case in hosted desktop situations where many similar desktops are hosted on the same server. Further benefits in terms of disk space and memory conservation are similarly gained by hosted desktop environments that leverage Containers Virtualization, negating the need for massive horizontal scaling of resources to support large numbers of desktops.
  • Hosted service. In the same vein as hosted desktops, hosted services such as those that support Web needs or application needs can also benefit from the performance enhancements and disk space saving technologies used by Containers Virtualization. Businesses that sponsor hosted services require high levels of automation to support a successful business model, which can be fulfilled through the use of templates as well as the management toolsets that arrive with Containers Virtualization solutions.

Performance Is Critical to Realizing a Return on Virtualization

With many organizations looking to gain high levels of consolidation, high performance is key to realizing a return on your investment dollar. Although many virtualization solutions are available—each with its own set of benefits and disadvantages—the architecture behind Containers Virtualization arrives with a set of unique benefits that makes it a compelling add for some environment needs.