Rate This Document
Findability
Accuracy
Completeness
Readability

Kunpeng QoS Controller

Kunpeng QoS Controller is a local node operator running in DaemonSet mode. After a user declares a resource control policy using QoSPolicy, the controller creates and configures a resctrl control group on the matching node, binds the pod process to the control group, and sets the container cgroup parameters as required. In this way, node-level quality of service (QoS) resource management and control are implemented.

Memory System Resource Partitioning and Monitoring (MPAM) is an AArch64-based technology for resource access isolation and monitoring. It solves system-wide or application-specific performance deterioration due to contention for shared resources in a server system that runs diverse types of services concurrently.

MPAM helps to restrict the memory bandwidth and L3 cache capacity occupied by offline services to prevent offline services from affecting the performance of real-time services. SMT QoS limits the best-effort (BE) task instruction throughput by using the Wait for Interrupt (WFI) instruction or other methods to ensure that latency-sensitive (LS) tasks obtain more microarchitecture resources. It also allows BE tasks to use the idle SMT threads of LS tasks, improving overall resource utilization. Kunpeng QoS Controller provides related interfaces through QoSPolicy custom resources (CRs) to use these two capabilities.

Its main capabilities are as follows:

  • Listens to QoSPolicy CRs and creates, updates, or deletes the corresponding resctrl control groups on the node.
  • Binds a pod to the target control group (using the pod label qos.kunpeng.huawei.com/group).
  • Performs additional operations for dynamic control of offline workloads (qos.kunpeng.huawei.com/workload-class=offline).
  • Controls cpu.qos_level of the pod container cgroup via the cpu.qosLevel field of QoSPolicy.

    MPAM manages these shared resources: L2 cache, L3 cache, and DMC bandwidth.

    Figure 1 Working principle of Kunpeng QoS Controller