最近看了一篇利用强化学习进行存储性能调优的论文,写一下读后感
什么是参数调优
针对某一设备上正在运行的某一工作负载,不断调整某些参数的值,使得设备可以达到最优的性能,参数调优不会改变硬件、源代码和应用程序。典型的参数一般有:I/O队列深度、RPC速率限制、线程数量和缓冲区大小等。
传统的参数调优存在的问题
传统的参数调优是一份十分具有挑战性的工作,而且成本较高:
- 每个系统、每个工作负载之间是不同的
- 硬件/软件缺陷
- 设备年限
- 需要雇佣领域专家来做这些工作
- 找到最优的设置是一个漫长的反复试验的过程
- 没人能做到7*24小事不间断的参数调优
同时,基于模型的方法通常不具备实操性:
- 不同的硬件/软件需要不同的模型来解决
- 没有足够的资源来维护这些模型
因此,必须找到一种新的解决方案
理想的自动化参数调优系统
- 面临的挑战
- 很难将参数变化与性能变化关联起来
- 参数空间巨大
- 目标
- 最优解是可定制的
- 可以在线训练
- 特点
- 可以对大范围的参数进行调优
- 模型数量很少
- 不需要提前了解系统或工作负载如何运行的
- 可以在多种系统上工作
- 极短的训练时间
- 稳定
- 不间断工作