共计 1325 个字符,预计需要花费 4 分钟才能阅读完成。
文 /Cloud Kernel SIG
01 背景概述
不同的应用程序,通常须要不同的调度策略来优化性能。而内核公布周期很长,降级内核的老本通常较高,优化无奈疾速规模化部署。并且针对特定利用的调度器优化,经常造成其余场景的性能回退,产生问题也难以回滚。通过传统热修复技术,能够在不降级内核的状况下,实现内核部分更新和优化,针对性晋升一些利用的性能。但传统技术无奈实现整个子系统降级,不反对大型调度个性,停机工夫长。而调度器热降级技术解决了以上问题。
02 技术计划
调度器热降级 SDK 通过模块化、数据重建、热替换等技术,实现调度器研发、测试、上线、保护的麻利化和定制化。其中,模块化技术主动地从内核中解耦出调度器模块代码,面向内核开发者提供麻利开发的 SDK。热替换技术使得管理员可在毫秒级 downtime 内部署。数据重建技术将数据状态从降级前的调度器迁徙到降级后的调度器。通过这些技术,能够实现定制化调度器,从而解决不同利用和负载须要不同调度器的问题,并实现生产可用。相干论文「Efficient Scheduler Live Update for Linux Kernel with Modularization」曾经发表在体系结构顶会 ASPLOS ’23 上。软件架构如下图所示:
计划兼容多架构、内核版本。已测试通过的包含 AArch64、x86-64 架构,4.19、5.10 系列内核。对 3.10 系列内核提供无限反对。计划同时反对各种调度器个性,经测试验证通过的包含以下:微型调度器、物理核调度器 (Core Scheduling)、删除限流性能 (CFS bandwidth control)、龙蜥 CPU 混部个性等、上游 Linux 社区的各种 bugfix。
03 利用场景及性能收益
调度器热降级 SDK 适宜于上面几种场景,这些场景均已失去验证。
- 架构上有针对非凡硬件、利用、负载来定制化调度器的需要。
- 管理员不能切换内核,或周期很长; 或因为社区运作进行内核版公布和保护。
- 内核开发者须要麻利且可回滚地开发测试上线调度器。
某云 Serverless 服务,通过调度器热降级 SDK,将 Linux 上游物理核调度器个性,以及基于之上自研的算力稳固技术,装置到龙蜥 4.19 内核老零碎上。最初通过这一优化,他们的客户实例缩小了约 10% 的 P99 提早,并升高了性能的抖动,还大幅升高了启动工夫。验证了调度器热降级不便反对大型个性以及扩大研发的能力。
某互联网金融服务公司,利用调度器热降级 SDK,敏捷地将他们自研的调度器优化装置到他们的外围业务中。包含了 Linux CFS 调度器和龙蜥内核的 CPU 资源隔离技术的优化。稳固缩小了 5% 的 CPU 资源节约,同时升高业务 rt。上线过程中,在 40,000 线程的环境中,停机工夫小于 12 ms。最终优化成果失去运维人员的认可,调度器热降级 SDK 的易用性也失去研发人员的认可,心愿持续应用调度器热降级 SDK 进行系统优化。
Cloud Kernel SIG 主页:https://openanolis.cn/sig
附:
2022 龙蜥社区全景白皮书(或公众号回复关键字“白皮书”获取)https://openanolis.cn/assets/static/openanoliswhitepaper.pdf
—— 完 ——