Feature Description
This document describes how to set up the enablement environment and enable the domain-based scheduling feature on the openEuler OS running on Kunpeng 920 series processors or Kunpeng 950 processors. It also provides guidance on performance testing and troubleshooting.
When multiple containerized services are deployed on a server, the following two situations often occur: First, data is shared across clusters inside a container. Services in a container run on multiple CPU clusters. Cache synchronization across clusters and cross-cluster access latency cause service performance jitter. Second, tasks of multiple container services compete for resources such as cache and memory bandwidth, causing inter-service interference and unbalanced resource utilization. The preceding two situations severely affect performance isolation between containers. As a result, containers interfere with each other, compromising container deployment density and CPU resource usage.
The domain-based scheduling feature optimizes core selection and load balancing by aggregating related tasks into virtual scheduling domains for execution. This improves CPU cache locality during task running and reduces contention for hardware resources (such as cache and memory bandwidth) caused by cross-task interference. In addition, this feature mitigates linearity decrease that may occur when the network multipathing feature is enabled.
Network multipathing and domain-based scheduling are two features that can be used separately or together, depending on service scenarios and requirements. For example, if you want to bind NIC queue interrupts to NUMA nodes, use the network multipathing feature. If you want to bind the interrupts to clusters, use the domain-based scheduling feature. If you want to solve linearity decrease that may occur when network multipathing is enabled, use the two features together.
Application Scenarios
The domain-based scheduling feature applies to single-instance scenarios, multi-instance scenarios without CPU affinity configuration, and scenarios where resources are shared. It implements NUMA-level and cluster-level affinity scheduling of service processes through virtualization domains. This feature can be used together with the network multipathing feature to improve performance by more than 10%.