CPU Manager is a beta feature in Kubernetes, enabling better placement of workloads in the Kubernetes node agent. If your workload faces CPU-intensive challenges, then CPU Manager can provide better performance isolation by allocating CPUs for exclusive-use.
CPU Manager might help workloads with the following characteristics:
Most Linux* distributions include the following three CPU resource controls:
By default, all the pods and the containers running on a compute node of your Kubernetes cluster can execute on any available cores in the system. The total amount of allocable shares and quota are limited by the CPU resources explicitly reserved for kubernetes and system daemons. However, limits on CPU time can be specified using CPU limits in the pod spec. Kubernetes uses CFS quota to enforce CPU limits on pod containers.
When CPU Manager is enabled with the "static" policy, it manages a shared pool of CPUs. Initially this shared pool contains all the CPUs in the compute node. When a container with integer CPU request in a Guaranteed pod is created by the Kubelet, CPUs for that container are removed from the shared pool and assigned exclusively for the lifetime of the container. Other containers are migrated off these exclusively allocated CPUs.
All non-exclusive-CPU containers (Burstable, BestEffort and Guaranteed with non-integer CPU) run on the CPUs remaining in the shared pool. When a container with exclusive CPUs terminates, its CPUs are added back to the shared CPU pool.
With CPU Manager static policy enabled, the workloads might perform better for one of the following reasons:
To understand the performance improvement and isolation provided by enabling the CPU Manager feature in the Kubelet, we ran experiments on an Intel® Xeon® processor-based dual-socket compute node with 48 logical CPUs (24 physical cores each with 2-way hyperthreading). Find the results of those tests, and learn more about CPU Manager performance as demonstrated with real-world workloads for three different scenarios, in the Kubernetes blog, “Feature Highlight: CPU Manager.”
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804