一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法与流程

2022-02-19 12:00:44 来源:中国专利 TAG:


1.本发明涉及容器虚拟化技术领域,主要是一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法。


背景技术:

2.近年来云计算凭借其新兴的计算框架、强大的计算能力以及便捷的管理方式,支撑起了众多的应用服务。以docker为代表的容器虚拟化技术凭借其轻量化的特点,逐渐取代了传统的虚拟机技术。然而云计算应用的工作负载随时间变化,满足峰值需求的静态资源分配会导致严重的资源浪费,相反,维护均值的计算资源会导致服务性能和水平下降。于是出现了弹性伸缩技术,它可以根据当前或者未来的业务需求变化,自动调整计算资源的大小,提升服务效率,降低服务成本。当前已存在众多容器内存弹性伸缩算法,如何动态优化弹性伸缩参数来实现容器内存的合理分配并保证服务性能,是值得关注研究的问题。
3.弹性伸缩是云计算资源管理的关键技术之一,使云基础架构可根据云应用程序的负载需求调整供应资源,实现了云资源按需分配功能需求。弹性伸缩方向主要有两种方式:水平弹性和垂直弹性,水平弹性要求应用程序提供分布式支持,以便将应用程序分解为多个计算实例,然后通过添加和移除实例的方式调整应用服务的负载能力。然而,当有足够的可用资源时,垂直弹性性能更好。垂直弹性是通过更改单个计算节点或计算实例的资源配额,来调整应用程序的负载能力,是一种细粒度的调整。并且垂直弹性适用于任何应用程序,它消除了在水平弹性中启动实例带来的开销,如负载均衡器或复制的额外实例,保证了应用程序的通信连接在缩放时不被中断,而水平弹性只适用于可复制或分解的应用程序。


技术实现要素:

4.本发明的目的在于克服现有技术存在的不足,而提供一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法,在云环境中容器服务的运行过程中,根据监控数据不断优化自己的学习过程,做出最佳决策,输出弹性系数至负载预测算法中,引导容器获取更加合适的资源配置。如此形成一个闭环,解决了云环境中弹性伸缩动态优化问题。
5.本发明的目的是通过如下技术方案来完成的。一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法,包括如下步骤:(1)、基于模糊推理系统的高维连续状态空间映射:通过模糊推理系统fis将服务性能与资源使用情况变量表示的连续高维状态空间映射成为离散低维状态空间;具体构建容器的状态空间时,通过检测不同负载情况下的容器服务质量表现,再结合资源使用情况作出弹性伸缩;(2)、基于强化学习的弹性伸缩动态优化:随着云环境中容器服务的不断运行,产生的监控数据用作强化学习算法的训练数据集,强化学习算法根据监控到的数据不断优化自己的学习过程,做出最佳决策,输出弹性系数至负载预测算法中,引导容器获取更加合适的资源配置。
6.更进一步的,选择gc时长作为服务性能指标,基于检测到的服务质量与预期服务质量做比较,通过对比检测到的服务质量和预期服务质量的差值e,也就是选取不同的gc差值大小作为系统状态空间的定义标准;使用模糊推理系统构建规则,这个差值有正有负,则以零为中心状态,向两边延伸至负无穷和正无穷,以零点为对称中心,划分不同的状态空间。
7.更进一步的,在云计算资源分配场景中使用强化学习算法进行垂直弹性伸缩决策,具体学习过程为:(1)、首先定义好状态和动作空间,然后根据状态和动作空间初始化一张q值表,并将q值都初始化为0,检测并选定智能体处于系统中的某种状态s,根据动作选择策略,选择对应动作a并执行,也就是选择一个优化后的弹性系数pole,并输出至预测算法中;执行结束后智能体收到反馈回报r,再根据反馈回报更新q值,循环多次后,收敛至最佳q值表;q值更新公式为:其中,代表在状态时选择执行动作的系统价值,t表示第几个,表示学习率,即最近动作之后学习到的奖励值在这个q值中的占比;为奖励衰变系数,即未来奖励对于现在的影响因子,这个公式表示会根据下一个状态中选取的最大q值乘上衰变系数再加上真实回报奖励更新q值;(2)、构建智能体的动作空间:选用不同的弹性系数组成系统动作空间,通过强化学习算法计算不同状态下各个动作即不同弹性系数的q值效益,进而得出最优弹性系数;(3)、设计系统的奖励函数,首先以一个目标函数作为标准来衡量资源分配效益,将目标函数定义为:其中表示服务质量,表示资源成本,和用来表示和的权重;使用程序运行过程中的垃圾回收时长gc作为具体衡量阶段性服务质量的指标,资源成本则表示为其分配的内存资源,则目标函数更新为:目标函数表示当前时刻系统状态价值,将奖励函数定义为在执行完一个动作之后的系统价值与前一时刻t的系统状态价值的差值:如果执行某个动作之后,系统状态价值增加了,则奖励为正,那么更新q值增加,表示这个动作带来了正收益,在之后遇到这种状态时,选择这种动作的概率会增大;反之,执行某个动作之后系统价值减少了,表示这个动作带来了负收益,之后选择这种动作的概率就会减少;
(4)、确定动作策略,启动学习过程:使用策略,首先定义一个,在每次实验开始时,随机一个大于0小于1的值,如果该值小于,则随机选择动作;如果大于,选择当前平均收益最高的那个动作a,公式表示如下:。
8.本发明的有益效果为:本发明提出基于模糊推理系统与强化学习结合的容器内存弹性伸缩优化方法,垃圾回收时长可以衡量服务性能,被作为智能体的状态表示,并基于模糊推理系统对高维连续状态空间进行降维。根据历史时间序列的监控数据使用q

learning算法从序列数据中学得容器内存弹性伸缩中的弹性系数的动态优化,使得内存后续的弹性伸缩机制动态调整拥有前瞻性。本发明可解决云计算弹性伸缩问题中的容器内存动态调整优化问题,在保证服务质量的同时,节约内存资源。
附图说明
9.图1为本发明的流程示意图。
10.图2为状态空间的时间差分布图。
具体实施方式
11.下面将结合附图对本发明做详细的介绍:本发明设计并实现一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法,本发明针对容器云环境下的内存弹性伸缩机制算法,提出基于内存资源使用情况与垃圾回收服务性能结合的动态优化弹性伸缩系数的算法,内存弹性伸缩的程度,过大,服务性能波动会引起较为剧烈的资源配置调整,过小,相同的服务波动引起缓的资源调整较为平缓,动态地的弹性系数选择体现了用户或者云提供商对于资源与性能之间的均衡考量。本发明将模糊推理系统与强化学习相结合,实现动态地弹性伸缩系数优化。
12.本发明主要包含两个部分,基于模糊推理系统的高维连续状态空间映射与基于强化学习(q

learning)的弹性伸缩动态优化,具体工作流程如图1所示:1.基于模糊推理系统的高维连续状态空间映射服务性能与资源使用情况反映了容器的内存负载情况是随着时间动态变化的。本发明引入模糊推理系统(fuzzy interface system, fis)将服务性能与资源使用情况变量表示的连续状态空间映射成为离散的模糊语义,从而解决了高维连续状态空间问题。
13.fis通过模糊规则将一组输入映射为理想的输出,具有n个模糊规则的fis可以表示为:示为:是环境状态中变量在第个规则下相应的语义值(例如“高”,“中”,“低”),是每个规则的推理输出,b是推理输出所在的集合。采用模糊规则形式
的规则面对特定的情况可以采取适当的行为,当模糊推断系统中含有多个规则时,同一个输入可能会同时满足多个规则,则需要通过加权去模糊化来处理这种冲突。对于输出y:其中代表规则的数量,使用模糊推理系统可以将高维连续的状态空间转换成离散的状态空间。具体构建容器的状态空间时,通过检测不同负载情况下的容器服务质量表现,再结合资源使用情况作出弹性伸缩。
14.我们选择了垃圾回收时长作为服务质量表现指标。垃圾回收机制也叫作garbage collection,简称gc,目的是清除在内存中不再使用的“垃圾”对象,释放内存空间。gc消耗的时间能够直观反应出服务性能,该指标在程序运行期间也可以检测到,因此选择gc时长作为服务性能指标,基于检测到的服务质量与预期服务质量做比较,通过对比检测到的服务质量和预期服务质量的差值(e),也就是选取不同的gc差值大小作为系统状态空间的定义标准。由于差值是连续的,使用模糊推理系统构建规则,这个差值有正有负,则以零为中心状态,向两边延伸至负无穷和正无穷,以零点为对称中心,划分不同的状态空间。例如状态空间的时间差分布如图2所示。
15.其中时间轴上代表检测到单位时间内容器服务的gc时间与预期gc时间的差值,最左边和最右边依次表示正、负无穷,时间轴上从左到右依次为时间,其中相同下标的时间点以零点为对称中心。于是可依据时间点划分出来时间区间作为状态s的具体表象。
16.那么模糊推理规则如下:基于上述模糊推理系统规则,我们将高维连续状态空间映射为低维离散状态空间,方便后续的强化学习算法进行弹性伸缩动态优化,2.基于强化学习(q

learning)的弹性伸缩动态优化强化学习是尝试做出最佳决策的科学。它模拟了人类进行学习的过程,让智能体以“试错”的方式进行学习,通过与环境进行交互获得奖励来指导自身行为,目标是使智能体获得最大奖励。强化学习不同于监督学习的地方在于强化信号,通过自身经验的反馈而产生的强化信号是对行为动作好坏的一种评价,因此无需大量已标记的数据集标签。这种无需先验知识的优势使强化学习适合解决复杂云环境中的资源分配问题。
17.在本发明研究的场景中,智能体是弹性伸缩机制中的负载预测算法作用的容器,直接目的是优化负载预测算法中的弹性系数,最终目的是准确预测下一时段的内存资源提供量,使容器云服务保持较高的性能并且不浪费过多的资源,而系统环境是应用服务承受的负载和对负载的处理情况。
18.优化对象为弹性系数,表示容器弹性伸缩时,容器内存动态变化的速率。因为对于不同的场景,有不同的弹性速率需求。一开始无法准确设定弹性力度系数,只能根据负载波动情况做出正相关的预测,况且在容器云环境的资源调整中通常没有充足的已标注的训练数据集,所以不适合使用需要大量历史数据和大量训练时间的学习模型。相比之下,在负载预测算法以及弹性伸缩机制的作用下,容器服务面对不同的业务负载,会产生不同的状态表现,通过监控器采集到相关性能数据,就成为了强化学习训练所需数据。所以随着云环境中容器服务的不断运行,产生的监控数据可用作强化学习算法的训练数据集,强化学习算法根据监控到的数据不断优化自己的学习过程,做出最佳决策,输出弹性系数至负载预测算法中,引导容器获取更加合适的资源配置,来解决了云环境中负载预测算法的弹性系数优化问题。
19.本发明提出在云计算资源分配场景中使用q

learning算法进行垂直弹性伸缩决策,根将q

learning算法与模糊推理系统(fuzzy interface system,fis)相结合,其中模糊推理系统对高维连续状态空间降维已在上一小节中介绍完毕。下面具体介绍q

learning。
20.核心的q

learning算法是一种离线控制(off

policy)的时间差分学习算法,即会使用两个控制策略,一个策略用于选择新的动作,例如策略,另一个策略用于更新价值函数,例如贪婪策略。所以也称为异策略。
21.q

learning算法的核心是构建一个q值表,即状态

动作价值表,q值代表某个状态下执行每个动作行为所产生的价值,然后根据q值选取能够获得最大收益的动作。例如下表所示,最左侧第一列包含三个状态,最上方一行包含两种动作,代表在状态时选择执行动作的系统价值,状态数量和动作数量决定q值表的维度,维度越大,q值的收敛复杂度越高。
22.q值表示例q

learning算法的学习过程为,首先定义好状态和动作空间,然后根据状态和动作空间初始化一张q值表,并将q值都初始化为0,检测并选定智能体处于系统中的某种状态s,根据动作选择策略,选择对应动作a并执行,也就是选择一个优化后的弹性系数pole,并输出至预测算法中。执行结束后智能体收到反馈回报 r,再根据反馈回报更新q值,循环多次后,收敛至最佳q值表。q值更新公式为:其中表示学习率,即最近动作之后学习到的奖励值在这个q值中的占比;为
奖励衰变系数,即未来奖励对于现在的影响因子。这个公式表示会根据下一个状态中选取的最大q值乘上衰变系数再加上真实回报奖励更新q值。所以q

learning算法会根据已有的知识,选择局部最优的动作,通过反馈奖励不断优化q值表,最终也能学习到全局较优的策略。
23.利用系统和服务运行过程中的历史数据,可以完成对不同容器云服务环境下不同弹性参数的最大q值的估计学习过程。下面介绍模型构建过程中的主要工作。
24.(1)智能体的状态空间已在上一小节中描述完毕。
25.(2)构建智能体的动作空间:使用强化学习方法的目的是为了优化负载预测算法中的弹性系数,所以直接选用不同的弹性系数组成系统动作空间,通过q

learning算法计算不同状态下各个动作即不同弹性系数的q值效益,进而得出最优弹性系数。弹性系数以本身为对称中心,分别向上和向下增加不同的倍率。所以动作空间a可表示为:(3)设计系统的奖励函数,为了更好地研究云资源的合理分配问题和参数合理化,首先以一个目标函数作为标准来衡量资源分配效益,将目标函数定义为:其中表示服务质量,表示资源成本,和用来表示和的权重,而这两个权重将由云提供者预先定义好,反映其对服务性能和资源成本的不同偏好。例如较高的表示对的敏感度要求更高,因此可能需要更多的资源来保证相同工作负载下的,另外如果较高,表示对资源成本的敏感性更高,因此需要控制较少的资源来应对工作负载。实际上,服务质量和资源成本基本上是成反比的关系,这是毋庸置疑的,所以更合理的资源分配计划应该是控制目标函数值最小化。
26.服务质量的衡量指标主要包括可用性、吞吐量、时延和丢包率等。在本算法中,仍然使用上一节选取的程序运行过程中的垃圾回收时长作为具体衡量阶段性服务质量的指标。资源成本则表示为其分配的内存资源,而不是其实际使用的内存资源,因为最终目标是优化资源分配策略,而不是降低程序的资源消耗。那么目标函数可以更新为:为了降低资源成本,良好的资源分配策略应该针对程序运行过程中的服务表现按需分配。所以目标函数表示当前时刻系统状态价值,将奖励函数定义为在执行完一个动作之后的系统价值与前一时刻的系统状态价值的差值:如果执行某个动作之后,系统状态价值增加了,则奖励为正,那么更新q值增加,表示这个动作带来了正收益,在之后遇到这种状态时,选择这种动作的概率会增大。反之,执行某个动作之后系统价值减少了,表示这个动作带来了负收益,之后选择这种动作的概率就会减少。
27.(4)确定动作策略,启动学习过程。我们知道在一开始的时候智能体对环境是完全陌生的,不知道如何工作,需要一步一步的探索学习,最终做出最佳决策。这个过程就是强化学习经常强调的exploration&exploitation,也就是探索和利用的权衡。因为刚开始的时候智能体只能通过试错来探索,也就是探索的过程。当然这里的试错并不会导致内存资源伸缩向相反的方向进行,而是在正相关的前提下改变弹性伸缩的程度,利用过程则是直接采取已知的可以得到很好反馈的行为。那怎么通过牺牲一些短期的奖励来获得更大的长期的奖励呢,这里将使用策略解决这个问题。首先定义一个,在每次实验开始时,随机一个大于0小于1的值,如果该值小于,则随机选择动作;如果大于,选择当前平均收益最高的那个动作。公式a表示如下:其中的值会随着学习而衰减。一开始的时候,将设定为很大的值,这样选择出来的动作几乎都是随机的,可以使智能体尽快熟悉系统环境,也就是尽可能进行探索,随着学习过程的推进,值衰减,会有更大的可能选择到价值奖励最大的动作,也就是尽可能利用学习到的结果做出最佳决策。
28.可以理解的是,对本领域技术人员来说,对本发明的技术方案及发明构思加以等同替换或改变都应属于本发明所附的权利要求的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献