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

接前一篇文章:论文译读 —— STUN: Reinforcement-Learning-Based Optimization of KernelScheduler Parameters(1)

2. 相关工作

2.1 操作系统调度器

当前,默认的Linux调度程序,例如完全公平调度程序(CFS),使用虚拟运行时间的概念,以理想且精确的多任务CPU为目标,使得所有任务使用相同的CPU时间。相比之下,作为FreeBSD操作系统的默认调度器的ULE调度器,是为对称多处理(SMP)环境而设计的,其(对称多处理器环境)中两个或多个处理器使用一个共享内存,并允许多个独立执行线程。其旨在提高同时多线程(SMT)环境的性能。为此,ULE通过独立调整每个任务的交互能力、优先级和切片大小,在交互调度中表现出了很高的性能。Bouron将FreeBSD ULE调度器移植到Linux,并将其性能与CFS的性能进行了比较。结果证实了这两个调度器在大多数工作负载中表现出相似的性能,但ULE对于具有许多交互任务的工作负载表现出更好的性能。

Kolivas认为,在特定环境下用于提高性能的启发式方法和可调参数会降低性能。为了减少这种调度开销,他们实现了一种简单的调度算法——脑残调度器(Brain Fuck Scheduler,BFS),它消除了复杂优先级的所有计算。BFS在CPU核数少于16的桌面Linux上提高了响应能力,并被用作一些Linux发行版的默认调度器,包括PCLinuxOS 2010、Zenwalk 6.4和GalliumOS 2.1。

2.2 利用机器学习进行参数优化

Lama提出并开发了AROMA——一个自动化配置Hadoop参数的系统,一个大数据分析平台——以提高服务质量并降低成本。AROMA使用了支持向量机(SVM)——一种机器学习模型,以优化参数,允许在没有低效参数调整的情况下有效地使用云服务。Wang基于机器学习自动优化了Apache Spark的参数,以提高其性能。Spark内部有180多个参数,其中14个对性能有显著影响的参数使用决策树模型算法进行了优化。作为性能评估的结果,初始设置的平均性能改进为36%。

此外,已经进行了提高安卓调度器性能的研究。在参考[10]中,Learning EAS——一种用于Android智能手机调度程序EAS的策略梯度强化学习方法被提出。Learning EAS被应用于正在运行任务的特征,并调整TARGET_LOAD和sched_migration_cost以提高调度器性能。对LG G8 ThinQ的评估结果表明,Learning EAS最大可减少5.7%的功耗,并且与默认的EAS相比,将Hackbench性能最大提高了25.5%。本文与以往的研究不同之处在于,我们提出了一种新的基于强化学习的Linux内核调度器内部参数优化方法。我们使用Q-learning算法,它比深度学习更轻量,消耗的内存更少。

猜你喜欢

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