APP下载

基于强化学习的Ceph文件系统的性能优化

2022-04-20徐敏胡聪王萍张翠翠王鹏

微型电脑应用 2022年3期
关键词:调节分层状态

徐敏, 胡聪, 王萍, 张翠翠, 王鹏

(国网安徽省电力有限公司,信息通信分公司,安徽,合肥 230061)

0 引言

随着云存储技术被广泛地运用到各个领域,云存储文件系统被广泛地关注,其中Ceph文件系统的性能受配置参数的影响较大,其参数配置问题一直是研究的重点,传统的人工参数配置不仅费时费力,还容易出现人工误差。强化学习因为具有优秀的决策能力近年来被广泛地运用到人工智能领域,Ceph文件系统的参数配置问题可以转化成决策和寻优问题,而强化学习在处理决策问题的效果较好,所以本研究考虑引入强化学习实现文件系统的管理。

文献[1]提出了一种基于随机森林和遗传算法的Ceph系统的参数自动调节方法来调节系统的参数,达到性能优化的目的,虽然它能够提高参数配置的效率和准确性,但是没有考虑到参数与参数之间的相关性。文献[2]采用强化学习算法中的DQN算法、A2C算法和PPO算法来实现Lustre文件系统的参数自动配置,虽然它能够解决人工配置的不准确问题,但是算法的性能有待进一步提高。

基于以上分析,本研究采用多智能体分层强化学习算法实现对Ceph文件系统的参数自动配置,以达到文件系统性能优化的目的。

1 基于强化学习的Ceph文件系统参数自动调节方案

在文件系统参数的调节问题中,强化学习的智能体为调节引擎,整个存储文件系统可以看作环境,这样就可以把参数调节问题转化成一个顺序决策问题[3]。

1.1 强化学习

强化学习是机器学习的一个重要的研究分支,其基本原理是通过智能体(Agent)与环境不断地交流,根据最大目标的回报值来选择最优的行为[4]。强化学习的架构如图1所示。

图1 强化学习架构

强化学习架构主要由Agent和环境2部分组成[5],Agent通过状态感知器对环境的状态进行感知。Agent采取的动作也会对环境产生一定的影响,环境改变后Agent会收到环境的变化是否有利的反馈信号,Agent通过学习和犯错来不断地选择目标动作,最终得到一个最优的满足设定条件的策略[6]。

1.2 多智能体强化学习

在Ceph文件系统的参数配置问题中,需要考虑的因素很多,所以单一的Agent系统无法协调好多个决策因素之间的关系,因此扩展多个Agent,通过多个Agent之间的相互合作来保证决策的最优[7]。多智能体强化学习(MARL)结构如图2所示。

图2 多智能体强化学习示意图

多智能体强化学习的基础是深度强化学习(Deep Reinforcement Learning,DRL)模型,通过扩展DRL模型即可得到多智能体强化结构,目前对于多智能体强化学习的研究主要有多智能体系研究和多智能体强化学习策略研究2个方面[8]。

1.3 参数自动调节系统

传统的参数调优的方法主要有控制反馈算法和参数搜索算法[9]。控制反馈算法只有在负载较小的情况下,效果才会突出并且需要人为设置关键参数;参数搜索算法只能对某一特定负载下的参数进行搜索,当负载发生变化时,不再适用[10]。本研究基于现有参数调优方法的缺陷,结合强化学习,构建一个参数自动调节系统如图3所示。

图3 参数自动调节系统

系统主要由策略节点和目标集群2部分组成。策略节点分为2部分,一部分为强化学习的智能体,另一部分为信息接口。目标集群的每个节点都包含一个监督器和一个执行器,监督器主要用来收集节点的状态信息,执行器主要用来执行参数调节的动作。

参数自动调节的工作流程为通过监督器采集节点的状态信息,这些信息通过信息接口传递到多智能体,多智能体根据节点的状态信息对参数进行调节,将参数调节的指令通过信息接口传递到执行器,执行器执行参数调节的动作来完成参数调节,然后不断地迭代达到终止条件。这一过程的关键在于智能体根据节点的状态信息对参数的配置,在不断的迭代过程中,智能体也在不断地学习和提升以满足参数配置的要求。

2 关键技术设计

上述提到强化学习的多智能体根据节点的状态信息进行参数配置,本研究的主要思想是将参数配置问题转化成多个指标分别满足,即分层强化学习。分层强化学习的类型主要有以下几种:基于分层抽象机的分层强化学习,基于选项的分层强化学习,基于MaxQ函数分解的分层强化学习和基于端到端的分层强化学习。前面3种都需要人工做很多的工作,人工操作不仅费时费力,还会造成最终结果的不准确等问题,因此本研究采用基于端到端的分层强化学习进行分层,然后根据分层采用基于选项的分层强化学习进行训练学习。

2.1 基于蚁群算法的瓶颈位置确定

将文件系统的参数配置问题转化为参数寻优问题,分为多个指标,本研究的端到端分层强化学习采用瓶颈和路标法,即在求解的过程中不断地寻找中间点,将其视为子目标来实现任务的分层。本研究采用蚁群寻找合理的划分点,根据蚁群的信息素变化程度判断瓶颈的位置,强化学习中的智能体需要将一个参数调节到另一个参数的过程中,如图4所示。

图4 蚁群搜寻瓶颈示意图

假设文件系统的参数配置要从s调节到g,调节的过程如图4所示,参数的配置需要经过状态u和v,通过蚁群算法的信息素根据状态变化找到瓶颈的所在位置,即状态v附近,通过多次探索找到参数配置过程中的多个瓶颈,根据瓶颈将问题划分为多个层次。

2.2 基于选项的分层强化学习

选项(option)是一种对动作抽象的概念,在本研究中可以理解为对参数调节的动作的抽象。一般情况下可以将一个option用三元组〈I,π,β〉表示,其中I表示节点的初始状态集合,S表示所有数据节点的初始状态信息,则有I⊆S,π表示该选项中的策略,在本研究中可以理解为参数调节的动作,β表示终止条件。假设option〈I,π,β〉在上述的状态s上可用,只有当s∈I时才会执行option,强化学习的智能体根据option中的π选择参数调节动作直到终止。

基于option的分层强化学习的过程:Agent接收到环境的状态信息后,需要将环境的当时状态改变到下一个状态,此时Agent会在满足条件的option中选择一个option,根据这个option的结果确定是否要执行这个option中的动作,如果选择执行这个option中的动作,则环境的状态可以直接转移到下一个状态,如果这个option的动作不能满足达到的要求,则继续选择下一个option,直到环境的状态满足要求为止。

在使用基于option分层强化学习解决问题时,注意需要定义一个更高层次等级的策略μ:S×OS→[0,1],其中,O表示所有选项的集合,OS则表示在状态s下所有可以使用的选项集合。

本研究采用的分层强化学习方法主要是结合了基于选项的分层强化学习和基于端到端的分层强化学习,采用基于端到端的分层强化学习中的瓶颈和路标法来确定分层的瓶颈和标志,然后采用基于选项的分层强化学习根据分层结果进行训练和学习。

3 试验分析与验证

将本文提出的强化学习方法与文献[2]中的强化学习和文献[1]方法进行对比试验,试验分为2个部分:性能对比和参数调节效果对比。

3.1 试验环境

由于系统的复杂性,选择在实验室内进行试验,试验的硬件为整个文件存储系统,系统主要由2个服务器节点和2个客户端节点组成,服务器节点在测试过程中均处于闲置状态,从而避免其他的负载对测试的结果产生一定的影响。2个客户端的配置为8个Intel Xeon CPU E5620 @ 2.40 GHz,32 GB RAM,网络带宽为10 GB/s。策略节点的配置为24个Intel Xeon CPU E5-2650 v4 @ 2.20 GHz,64 GB RAM以及2个NVIDIA Tesla K80 GPU。

测试工具选用Iozone(3.479),测试的内容主要有以下几个部分:Write、RE-Write、Read、RE-Read、Strided Read、Random Read、Random Writer。

3.2 试验过程

系统搭建完后,采用本文的分层强化学习和文献[2]的强化学习对系统文件的性能进行测试,测试的结果依靠系统的吞吐量来表示,设置每个客户端启动16个进程来对16 GB大小文件进行并行读写,测试使用的文件块大小为1 MB,跳读跨度为2 MB,测试过程中的节点状态信息会在测试目录中生成对应节点的数据包中,测试完成后,可以在日志文件中查看各个节点的总吞吐量、平均速度、最大速度、最小速度、读写速度信息,采用本文的分层强化学习和文献[2]的强化学习进行测试之前,要对系统的参数重置为默认值,每种方法分别测试3次,取3次结果的平均值对数据进行整理可以得到表1的测试数据。

表1 测试数据

从表中数据可以看出,采用强化学习来对参数进行调优的整体结果比文献[1]的效果好,采用本文的强化学习方法数据的Write、RE-Write、Strided Read、Random Read比文献[2]的强化学习性能优秀,而文献[2]在Read、RE-Read 2个方面的速度高于本文提出的分层强化学习,并且2种强化学习的Random Writer几乎相等。为了更直观地表现2种强化学习的参数调节效果,由于上述数据的差异值较大无法直观的表现,因此对数据进行标准化处理并用直方图表现(图5)。

图5 强化学习性能对比直方图

从图5可以看出,采用本文提出的强化学习对文件系统的参数配置进行调节的效果相比文献[2]的强化学习有所提升。

下面对采用本文提出的强化学习调节参数与Ceph文件系统默认参数性能进行对比,在保持数据大小相同的情况下,采用本文提出的参数调节和默认参数对数据进行读写测试,数据大小分为8 G、16 G、32 G,分别读写3次,对数据的读写速度进行统计可以得到表2的数据。

表2 读写速度数据

表中数据表明,在相同的数据大小情况下,本文的参数调节方案的读写速度稳定在12 MB/s左右,默认参数的数据读写速度在9 MB/s,并且随着数据大小的增加,默认参数下的数据读写速度会有所下降,为了更直观地表现2种情况下数据大小与读写速度的关系,通过计算可以得出图6的读写速度对比图。

图6 读写速度对比

从图6中可以看出本研究提出的参数调节方案能够提高Ceph文件系统的性能。

综上所述,本文提到的参数调节方案能够提高Ceph文件的性能,读取速度相比默认参数提高了30%左右。

4 总结

本研究从Ceph文件系统参数调节为出发点,结合强化学习,采用了基于端到端的分层强化学习和基于选项的分层强化学习来实现系统参数自动调节,最后通过试验证明了参数调节方案能够提高系统的性能,并得出以下结论。

(1)分层强化学习的重点在于层次的划分,对问题进行有效的划分可以将复杂的问题简单化。

(2)提高文件系统的性能,可以从参数配置入手。

(3)参数配置问题需要考虑的因素很多,所以需要多个智能体来协同决策。

本研究内容能够对强化学习在文件系统中的应用提供一些思路和方向,具有一定的实用价值,但是由于试验数据不足,有待进一步的改进和完善。

猜你喜欢

调节分层状态
方便调节的课桌
2016年奔驰E260L主驾驶座椅不能调节
一种沉降环可准确就位的分层沉降仪
状态联想
雨林的分层
生命的另一种状态
有趣的分层
可调节、可替换的takumi钢笔
热图
坚持是成功前的状态