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.
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.
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.
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.
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.
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:
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.