Interference-Aware Resource Scheduling for Cloud Microservices on Kubernetes
Main Article Content
Abstract
Kubernetes schedules pods using declared resource requests, which describe capacity but not contention. Co-located microservices compete for CPU quota, memory, cache, and network bandwidth in ways that requests do not capture, producing tail latency inflation and service level objective (SLO) violations even when nodes appear to have spare capacity.
This study presents an interference-aware scheduling framework for microservices on Kubernetes. A node-level agent collects CPU throttling, memory pressure stall, and network contention signals, which are combined into a per-node interference score and used to attribute degradation to culprit and victim workloads. The score drives three mechanisms: an interference-penalized placement scorer implemented as a scheduler plugin, a resource allocator that adjusts requests, limits, and CPU isolation, and a rebalancer that relocates noisy workloads. The framework was evaluated on a multi-service microservice benchmark against the default Kubernetes scheduler and a utilization-based bin-packing policy.
Compared with the default scheduler under co-located load, the framework reduced p95 latency by 25-40% and p99 latency by 35-55%, increased sustained throughput by 12-20%, and reduced SLO violation minutes by approximately 65%. CPU throttling events on latency-critical pods decreased by more than 80%, while cluster utilization decreased by less than 5 percentage points relative to bin-packing.
Conclusions: Incorporating measured interference into scheduling and allocation decisions allows microservice platforms to retain high utilization while protecting tail latency. The framework provides a replicable approach for Kubernetes operators seeking predictable performance in shared clusters.
Article Details
Section
How to Cite
References
[1] J. Dean, L.A. Barroso, (2013). The tail at scale, Commun. ACM 56 (2) 74-80.
[2] P. Turner, B.B. Rao, N. Rao, (2010). CPU bandwidth control for CFS, in: Proceedings of the Linux Symposium, Ottawa, Canada, 245-254.
[3] J. Mars, L. Tang, R. Hundt, K. Skadron, M.L. Soffa, (2011). Bubble-Up: Increasing utilization in modern warehouse scale computers via sensible co-locations, in: Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), ACM, Porto Alegre, Brazil, 248-259.
[4] D. Lo, L. Cheng, R. Govindaraju, P. Ranganathan, C. Kozyrakis, (2015). Heracles: Improving resource efficiency at scale, in: Proceedings of the 42nd Annual International Symposium on Computer Architecture (ISCA), ACM, Portland, OR, 450-462.
[5] C. Delimitrou, C. Kozyrakis, (2013). Paragon: QoS-aware scheduling for heterogeneous datacenters, in: Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), ACM, Houston, TX, 77-88.
[6] C. Delimitrou, C. Kozyrakis, (2014). Quasar: Resource-efficient and QoS-aware cluster management, in: Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), ACM, Salt Lake City, UT, 127-144.
[7] X. Zhang, E. Tune, R. Hagmann, R. Jnagal, V. Gokhale, J. Wilkes, (2013). CPI2: CPU performance isolation for shared compute clusters, in: Proceedings of the 8th ACM European Conference on Computer Systems (EuroSys), ACM, Prague, Czech Republic, 379-391.
[8] A. Verma, L. Pedrosa, M. Korupolu, D. Oppenheimer, E. Tune, J. Wilkes, (2015). Large-scale cluster management at Google with Borg, in: Proceedings of the Tenth European Conference on Computer Systems (EuroSys), ACM, Bordeaux, France, 1-17.
[9] B. Burns, B. Grant, D. Oppenheimer, E. Brewer, J. Wilkes, (2016). Borg, Omega, and Kubernetes, ACM Queue 14 (1) 70-93.
[10] J. Weiner, (2018). PSI - Pressure Stall Information, Linux Kernel Documentation. docs.kernel.org/accounting/psi.html.
[11] B. Gregg, (2019). BPF Performance Tools: Linux System and Application Observability, Addison-Wesley, Boston, MA.
[12] Y. Gan, Y. Zhang, D. Cheng, A. Shetty, P. Rathi, N. Katarki, et al., (2019). An open-source benchmark suite for microservices and their hardware-software implications for cloud and edge systems, in: Proceedings of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), ACM, Providence, RI, 3-18.
[13] S. Chen, C. Delimitrou, J.F. Martinez, (2019). PARTIES: QoS-aware resource partitioning for multiple interactive services, in: Proceedings of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), ACM, Providence, RI, 107-120.
[14] B. Beyer, C. Jones, J. Petoff, N.R. Murphy, (2016). Site Reliability Engineering: How Google Runs Production Systems, O'Reilly Media, Sebastopol, CA.