论文译读 —— STUN: Reinforcement-Learning-Based Optimization of Kernel Scheduler Parameters 1

STUN: Reinforcement-Learning-Based Optimization of Kernel Scheduler Parameters for Static Workload Performance

Hyeonmyeong Lee , Sungmin Jung and Heeseung Jo

摘要

现代Linux操作系统被广泛用于各种领域,从小型物联网嵌入式设备到超级计算机。然而,大多数机器使用为通用环境实现的默认Linux调度程序参数。问题是Linux调度器无法利用各种硬件和软件环境的特性,因此,难以在机器中实现最佳性能。在本文中,我们提出了STUN —— 一种自动调度器化框架。STUN自动修改Linux内核的5种调度策略和10个参数,以针对每个工作负载环境进行优化。STUN通过过滤机制和训练奖励算法,减少了训练时间并提高了效率。使用STUN,用户可以在操作系统调度器级别优化机器的性能,而无需手动控制调度器。STUN在人脸检测工作负载下的执行时间和FPS(帧率)分别提高了18.3%和22.4%。此外,STUN在4、44和120核微基准测试中性能分别提高了26.97%、54.42%和256.13%。

关键词

operating systems; performance; scheduler; tuning; reinforcement learning

1. 介绍

现代Linux服务器应用于各个领域,从小型物联网设备到大型服务器。绝大多数物联网设备,如Raspberry Pi(树莓派)和数据中心使用的高性能服务器,都基于Linux操作系统。Summit是由IBM开发的超级计算机,其拥有2414592个CPU核和2801664GB内存,运行于Red Hat Enterprise Linux操作系统上,Ret Hat Enterprise Linux是一种Linux发行版。每一个设备或服务器都有各种各样的硬件环境,从CPU核到内存大小,它们的工作负载也有很大差异。对于Summit使用数百万个线程模拟人工智能和机器学习模型来说,计算吞吐量至关重要。然而,响应性对于其他服务器机器来说可能是至关重要的。

CPU调度是一种当有多个进程准备好执行的时候确定接下来要执行哪一个进程的技术。用于特定环境(场景)的CPU调度器的优化是提高性能和降低成本的一项重要议题。众所周知,工作负载和机器的性能在很大程度上取决于调度器的配置。然而,大多数机器使用默认的调度程序配置,该配置考虑了通用Linux硬件和软件环境。高效的调度对整个Linux服务器具有显著的性能影响,因此,已经进行了大量的研究来改进它。大多数调度研究都集中在减少调度开销或修改优先级操作以支持特定情况下的作业。

优化调度程序是一个难题,需要对整个操作系统拥有丰富的专业知识。此外,许多因素会影响调度器的性能,例如硬件、工作负载和网络,以及用户如何操作系统。但是,理解这些因素之间的所有关联性是十分困难的。即使实现了这样的调度器算法,调度器度量也会包含错误。因此,很难确认调度器性能是否真的得到了改善。

在本文中,我们提出了STUN,它可以自动找到用于静态工作负载性能改善的最佳调度器参数值,而静态工作负载的工作负载模式很少发生变化。静态工作负载,例如batch-style或迭代作业,在服务器中非常常见。基因组分析软件、大数据分析系统和模式识别人工智能是合理的候选者。STUN旨在通过调整调度策略和参数来提高工作负载的性能。在Linux内核中,定义了5个调度策略和14个调度参数。通过根据硬件环境和工作负载的特性适当地修改这些策略和参数,可以提高调度器的性能。但是,由于应考虑每个参数之间的关系,单个优化产生了大量消耗,并且也需要专业的工作量信息和硬件专业知识。

本文贡献如下:

  • 透明度(Transparency)

STUN对用户应用程序是透明的,因为它试图找到Linux内核调度程序的最佳参数值。因此,用户不需要修改他们的传统应用程序,并且STUN的处理是自动执行的。

  • 增强学习(Reinforcement learning)

与以往的研究不同,STUN的工作基于强化学习。在调整了调度器的参数之后,性能作为奖励被接收。通过使用强化学习,STUN可以精细地优化调度器策略和参数。

  • 效率(Effificiency)
对于有效的优化过程,STUN不搜索所有调度器参数,并且可以通过预过滤影响工作负载的参数来显著缩短搜索时间。
本文的结构如下:

第2节考察并分析了利用机器学习进行调度器和参数优化的研究案例;

第3节阐明了STUN中使用的强化学习的背景技术;

第4节描述了STUN的结构、操作和特点;

第5节描述了STUN性能的评估结果;

第6节提供了一些结论性意见以及今后研究的领域。

猜你喜欢

转载自blog.csdn.net/phmatthaus/article/details/131391743