法国国家数字科学与技术研究所 Inria 的 Julia Lawall 在本周举行的 Linux Plumbers 大会 (LPC 2022)上介绍了新的 Linux 内核调度方法 “Nest”, Nest 调度程序由 Inria 研究所、 oracle Labs 、悉尼大学合作开发。据 Julia 介绍称,Nest 调度程序可利用现代硬件“将性能提高了 10%-2 倍,并且可以减少能源使用”。
现有的 Linux CFS 调度程序行为是将任务分散到机器的可用 CPU 内核上,Nest 采用了不同的方法。考虑到了启动长时间空闲的 CPU 内核可能会导致延迟,这些内核需要一段时间才能运行到更高的性能状态(更高的频率),而这段时间可能对当前的频率/功率预算产生负面影响 。而 Nest 的工作方式是尝试在启动空闲内核之前,将任务保留在一组已经以最高性能状态运行的“暖内核”(warm cores)中。
Nest 还在其调度决策中考虑了父/上一个核心,以尝试在多插槽 CPU 的情况下改善局部性能。
Nest 开发组使用外媒 phoronix 开源的 Phoronix 测试套件对各种工作负载进行基准测试,评估其调度决策的影响。
测试结果显示:在 1/2/4 插槽英特尔服务器,以及 AMD 服务器和台式机上, Nest 任务调度程序对轻型或中等工作负载产生 10% 到 2 倍的性能提升。对于已经充分利用 CPU 的多线程工作负载,Nest 任务调度程序并不能带来太多的提升,它比较适用于轻-中度工作负载。
了解更多 Nest 任务调度程序信息,可以查看 LPC 2022 中的 Nest 调度程序介绍视频以及幻灯片(PDF)。