Kernel-Level Dynamic Priority Scheduling for Containers
The use of containerized cloud platforms has now become inevitable for latency-sensitive applications; but resource contention between different workloads often creates the problem of noisy neighbors, which causes higher response latency and poor service quality. We present SCX_MUS (Scheduler Extensions for Multi-User Scheduling), a dynamic priority scheduling framework at the kernel level that enhances the CPU allocation to latency-sensitive containers running in Kubernetes environments. The proposed framework uses Linux sched_ext architecture along with the extension of eBPF to support dynamic cgroup-based scheduling through runtime awareness. A lightweight user space component continuously observes the workload of Kubernetes and adjusts the scheduling priorities of the containers without any need for recompiling the kernel or restarting containers. The experimental evaluation of the proposed framework was done with the help of Redis and stress-ng workloads in the same benchmarking condition compared to the native Linux Completely Fair Scheduler (CFS). The experimental results reveal a significant improvement in terms of latency reduction, enhanced throughput, efficient utilization of CPU resources, and stable performance of scheduling under resource contention.