一种分布式的微服务调度优化方法



1.本发明属于微服务调度优化技术领域,特别涉及一种分布式的微服务调度优化方法。


背景技术:



2.在分布式服务场景中,微服务已不单单部署在云上,在边和端上也会根据需求部署各类服务。这种微服务的分布式部署方式会给调度带来一定难度。
3.第一,由于微服务通常具有功能单一的特点,微服务之间相互协同才能对外提供服务,所以各个微服务之间的调用普遍存在。若这种微服务之间的数据调用频繁发生,则会增加服务响应时间,影响服务性能。
4.第二,数据是服务的核心,服务与数据之间的依赖普遍存在,若由于数据规模大、数据安全性等因素导致数据无法移动,与数据具有依赖关系的服务的部署位置就不能随意部署,若部署位置不恰当,很可能导致服务延时增加,甚至会导致服务无法执行。
5.第三,若用户受到管理域的限制,服务与用户之间的距离会增加数据的传输时间,所以也应该约束服务的部署位置。
6.总之,在分布式场景中,微服务、数据和用户的部署位置都不是任意的,微服务的调度需要考虑服务与服务、服务与数据、用户与服务之间的依赖约束。然而,目前的微服务调度大多只考虑了云上的服务调度,通常会以资源中心、微服务、用户作为实体,约束包括资源约束,均衡性约束等,并没有将服务之间、服务与数据之间、服务与用户之间的依赖作为影响调度的因素。此外,目前的微服务调度方法基本采用的是一次训练,多次应用的方式运行,不具备持续优化的能力。


技术实现要素:



7.为了克服以上技术问题,本发明的目的在于提供一种分布式的微服务调度优化方法,该方法将服务之间、服务与数据之间、服务与用户之间的依赖引入微服务调度约束,并利用了强化学习的持续优化能力,是一种适应于分布式场景,具有持续优化能力的微服务调度方法。
8.为了实现上述目的,本发明采用的技术方案是:
9.一种分布式的微服务调度优化方法,包括以下步骤;
10.步骤1:基于微服务实例、分布式环境实例、微服务在分布式环境中的部署位置,将第t个调度任务所处的环境建模为四元组,用以描述该时刻微服务实例在分布式环境实例中的部署情况;
11.步骤2:将第t个调度任务的动作建模为二元组,用以描述该时刻微服务si被部署到节点nj;
12.步骤3:以低服务延时,高资源均衡性为目标,将动作完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和用于奖励描述;
13.步骤4:将环境e
t
=(t,s,n,sn),其中t为大于0的自然数,表示第t个微服务调度优化任务,s为由所有微服务实例描述信息构成的向量,n为有云环境实例中所有节点描述信息构成的向量,sn为由以微服务实例编号作为第一元,节点编号作为第二元的序偶构成的向量;动作a
t
=(si,nj),其中si为微服务实例编号,nj为si被部署到的节点的编号;奖励r
t
=(g
t+1-g
t
)-(avgt
t+1-avgt
t
),其中g
t
和g
t+1
分别为动作a
t
执行前后的资源均衡性,avgt
t
和avgt
t+1
分别为动作a
t
执行前后的服务时延,输入ddpg模型,进行训练,得到微服务实例调度优化方案的预测模型;
14.步骤5:使用训练得到的微服务实例调度优化方案预测模型对微服务实例在云环境实例中的调度优化方案进行预测,得到相应的调度优化方案,用于解决在确保云环境实例具有高资源均衡性、低服务延时的前提下,将微服务实例部署到云环境实例的节点中的技术问题。
15.所述步骤1具体为:
16.环境描述:将第t个微服务调度优化任务所处的环境状态e
t
定义为四元组,e
t
=(t,s,n,sn),其中,t为调度优化任务序号;s为表示当前服务的向量,即s={s1,s2,

,si,

,sn};n为表示当前节点的向量,即n={n1,n2,

nj,

nm};sn为表示当前的服务部署方案的向量,即sn=(《s
s1
,n
n1
》,《s
s2
,n
n2
》,

《s
sk
,n
nk
》,

《s
snum
,n
nnum
》),其中,每个元素为序偶《s
sk
,n
nk
》,表示服务s
sk
被部署到节点n
nk
上。
17.所述步骤2具体为:
18.动作描述:将第t个微服务调度优化任务的动作定义为在当前优化调度任务中,执行将服务部署到节点的操作a
t
=(si,nj),即服务si被部署到节点nj上,其中,nj的选择要符合服务依赖、数据依赖和用户依赖约束的限制,面向分布式服务环境。
19.所述服务的调度约束设计如下:
20.服务依赖:微服务的功能相对独立,在分布式环境下,用户需求是复合的,微服务需要通过相互协同来满足用户需求,通过分析微服务之间的调用关系,从微服务的链路数据提取各种强度的服务依赖,用以约束动作集,具体的,从微服务调用链路数据中统计得到服务之间调用关系的次数,再将服务之间调用次数除以服务单位时间内总的调用次数作为服务依赖的强度,此后,在待部署服务与其他服务具有强服务依赖关系时,优先选择强依赖服务所在或者相邻节点;
21.数据依赖:数据是服务的核心要素,所以数据依赖被用于限定动作集,数据源的位置可以通过先验知识获取,服务与数据源的依赖关系通过业务流程描述文件的解析获取,采用矩阵描述,矩阵的行表示服务所在节点编号,矩阵的列表示数据所在节点编号,若服务与数据之间存在依赖,则以服务所在节点编号和数据所在节点编号为下标的元素为1,否则为0,此后,在待部署服务与数据具有依赖关系时,优先选择数据所在或者相邻节点;
22.用户依赖:用户是调用服务的主体,所以用户依赖被用于限定动作集,用户与服务的依赖关系由先验知识获取,采用矩阵描述,矩阵的行表示服务所在节点编号,矩阵的列表示用户接入的节点编号,若服务与用户之间存在依赖,则以服务所在节点编号和用户接入节点编号为下标的元素为1,否则为0,此后,在待部署服务与用户具有依赖关系时,优先选择用户所在或者相邻节点。
23.所述步骤3具体为:
24.奖励描述:以动作a
t
完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和作为设置奖励值的依据,计算方法如公式(1)所示,当服务延时降低,资源均衡性提升时,奖励为正值,否则奖励为0或负值;
25.r
t
=(g
t+1-g
t
)-(avgt
t+1-avgt
t
) 公式(1)
26.如公式(1)所示,r
t
为第t个微服务调度优化任务执行后的奖励值,g
t
和g
t+1
分别为动作a
t
执行前后的资源均衡性,avgt
t
和avgt
t+1
分别为动作a
t
执行前后的服务时延。
27.所述资源均衡性和服务时延的计算方法如下:
28.1)资源均衡性:基于cpu利用率和内存利用率定义资源均衡性;
29.cpu利用率:节点的cpu利用率被定义为节点中已分配的cpu资源与总cpu资源的比值,已分配的cpu资源通过节点上容器的cpu使用情况计算,如公式(2)所示,n为节点上容器的总数;
30.公式(2)
31.cpu利用率的计算方式如公式(3)所示,capacity
cpu
为节点的总cpu资源;
[0032][0033]
内存利用率:节点的内存利用率被定义为节点中已分配的内存资源与总内存资源的比值,已分配的内存资源通过节点上容器的内存使用情况计算,如公式(4)所示,n为节点上容器的总数;
[0034]
公式(4)
[0035]
内存利用率的计算方式如公式(5)所示,capacity
mem
为节点的总内存资源;
[0036][0037]
节点资源均衡性被定义为节点cpu利用率和内存利用率差值的绝对值,如公式(6)所示;
[0038]gi
=|ratio_node
cpui

ratio_node
memi
| 公式(6)
[0039]
其中,i为节点编号,ratio_node
cpui
表示第i个节点的cpu利用率,ratio_node
memi
表示第i个节点的内存利用率;
[0040]
云环境包含大量节点,资源均衡性需要综合考量所有节点,单一的节点均衡性并不能代表容器云的性能良好,采用所有节点的节点资源均衡性的方差评价云环境的资源均衡性,辅助奖励计分,如公式(7)所示;
[0041][0042]
其中,为各节点资源均衡性的均值,gi为第i个节点的资源均衡性;
[0043]
2)服务时延:采用通信时延和执行时延的加和表示服务时延,如公式(8)所示;
[0044]
t
i,j
=comt
i,j
+exet
i,j
公式(8)
[0045]
其中,t
i,j
表示服务i在节点j上的服务时延,comt
i,j
表示服务i在节点j上的通信时延,由与服务i依赖的服务和数据的网络传输产生,exet
i,j
表示服务i在节点j上的执行时延;
[0046]
服务的通信时延可以被定义为服务依赖和数据依赖产生的时延总和,如公式(9);
[0047]
comt
i,j
=sevt
i,j
+datt
i,j
公式(9)
[0048]
其中,sevt
i,j
表示服务i在节点j上由服务依赖产生的时延,用依赖强度与各跳带宽商值的加和表示,服务之间的依赖强度被定义为服务之间调用次数除以服务单位时间内总的调用次数;datt
i,j
表示服务i在节点j上由数据依赖产生的时延,可以用数据量与各跳带宽商值的加和表示;
[0049]
假设节点可以部署所有调度给它的服务,服务的执行时延被定义为服务指令长度与节点cpu的处理能力的比值,如公式(10)所示;
[0050][0051]
其中,mipsj表示节点j的cpu指令执行速度,cpuui表示服务i的cpu利用率,mii表示服务i的指令长度,前两个指标可以通过监控系统获取,第三个指标为先验知识;
[0052]
分布式的节点中存在大量服务,采用所有服务响应时间的均值衡量云环境中服务的延时,如公式(11)所示。
[0053][0054]
其中,i表示服务编号,服务总数为n,j表示节点编号,节点总数为m。
[0055]
所述步骤4具体为:
[0056]
将基于深度强化学习的微服务调度优化问题描述为一个5元组o
t
=(t,e
t
,a
t
,r
t
,e
t+1
),其中,t是一个在1到n之间的值,为调度优化的任务序号;e
t
表示在第t个任务时刻分布式环境的状态;a
t
表示在状态e
t
下所采取的动作,即服务的调度方案;r
t
表示在状态e
t
下采取a
t
这个动作所获得的回报;e
t+1
表示在状态e
t
下采取a
t
这个动作获得的新状态,描绘各个调度优化任务的5元组会被存放于经验重放池中,为模型训练提供依据;
[0057]
ddpg使用了由策略网络和价值网络组成的双网络结构,策略网络的输入是当前环境的状态e
t
,输出相应的动作a
t
。价值网络输入是当前环境的状态e
t
和动作a
t
,输出是e
t
状态下执行动作a
t
的打分,此外,策略网络和价值网络都分为在线网络和目标网络,在线网络和策略网络对应的结构相同,但初始化参数不同。
[0058]
所述步骤5具体为:
[0059]
基于训练得到的模型,将当前微服务调度优化任务的环境、由服务依赖矩阵、数据依赖矩阵和用户依赖矩阵构成的调度约束输入至训练得到的模型,执行模型,生成调度优化方案,并将执行当前微服务调度优化任务的得到的奖励值反馈给环境,进行持续优化。
[0060]
本发明的有益效果。
[0061]
本发明将微服务的调度优化问题转化成为基于强化学习的预测问题,并将服务依赖、数据依赖、用户依赖、分布式资源等影响微服务性能的因素量化到调度模型中,考虑了更多的优化因素,还有助于提升由微服务组合而成的服务的调度效率。
[0062]
本发明分析了微服务的特性,包括服务依赖性、数据依赖性、用户依赖性。再基于上述特性,设计了三类调度约束,给出分布式微服务调度优化问题的模型。此后,将分布式微服务的调度问题转换为基于模型的预测问题,再基于训练后的模型对微服务进行持续调度优化。本技术能够在确保调度方案有效的前提下,有效地提升生成调度方案的效率,能够
更好地满足微服务及由微服务组合得到的服务的时效性要求。
附图说明:
[0063]
图1分布式服务的基础环境示意图。
[0064]
图2基于深度强化学习的微服务调度优化问题基本流程。
[0065]
图3基于深度强化学习的调度优化方法的结构图。
具体实施方式
[0066]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0067]
本技术设计了一种分布式的微服务调度优化方法。在分布式科技服务环境中,影响服务性能的因素很多,为保障服务质量,优化目标不同的各类调度优化算法应运而生,但最终目的都是保障服务的正常运行。然而,不同时期提出的服务调度优化算法具有相应的局限性。此外,对于不同类型的微服务采用相同的调度方案存在调度效果不理想的可能。因此,研究针对分布式环境,探讨微服务的调度优化方法。
[0068]
图1所示为分布式服务的基础环境,主要包含分布式节点、服务和用户三类对象。服务是核心,指提供业务功能的微服务。节点是服务的载体,包括云节点和边缘节点,用于提供计算和存储能力,节点之前通过网络连通,传输速度受带宽影响。用户是服务的消费者,用户分布会受到所在行业或单位的管理域限制。综上所述,在分布式科技服务环境中,微服务调度指在一定约束下,以优化目标为目的,将微服务部署到合适的节点的过程。
[0069]
本发明综合考虑影响服务调度的因素和调度效率,在服务调度优化过程中主要考虑了3个控制动作的约束、2个辅助奖励的优化目标,并采用基于改进深度确定性策略梯度算法(deep deterministic policy gradient,ddpg)实现服务的调度优化。
[0070]
(1)调度约束
[0071]
面向分布式服务环境,服务的调度约束设计如下:
[0072]
1)服务依赖:一般情况下,微服务的功能相对独立。在分布式环境下,用户的科技服务需求是复合的,微服务需要通过相互协同来满足用户需求。因此,微服务之间的依赖是普遍存在的。研究将微服务之间的调用关系定义为依赖,并根据服务调用频率划分服务依赖的强度,分为强依赖和弱依赖。通常来讲,具有强依赖的服务之间频繁调用,若将具有强依赖的服务进行组合,并部署在邻近甚至同一节点上,能够有效避免数据传输带来的网络开销,从而优化科技服务的性能。服务依赖可以用于约束基于深度强化学习的调度优化方法中的动作集。具体的,可以从istio监控获取的服务调用链路数据中统计得到服务之间调用关系的次数,再将服务之间调用次数除以服务单位时间内总的调用次数作为服务依赖的强度。此后,在待部署服务与其他服务具有强服务依赖关系时,优先选择强依赖服务所在或者邻近的节点。
[0073]
2)数据依赖:数据是服务的核心,几乎所有的服务都需要进行数据处理,所以服务与数据之间的依赖也普遍存在。服务要处理数据,必然需要访问数据。若数据与服务不位于
相同的节点,则要进行数据传输,所以数据的传输时间也成为影响服务时延的因素,尽可能的使服务与数据邻近也有利于保障服务性能。尤其对于具有一定规模的数据来说,传输时间对性能的影响会更加明显。因此,本技术将数据依赖作为行为约束,用于限定动作集。数据源的位置可以通过先验知识获取,服务与数据源的依赖关系可以通过业务流程描述文件的解析获取。
[0074]
3)用户依赖:用户是服务的主体,服务的部署也会受用户的影响。对于具有安全和管理需求的服务,服务要部署在用户的限定范围内,所以也应该根据用户信息对服务的部署位置进行约束。因此,本技术将数据依赖作为行为约束,以限定动作集。用户与服务的依赖关系由先验知识获取。
[0075]
(2)优化目标
[0076]
面向分布式服务环境,服务的优化目标设计如下:
[0077]
一般来讲,控制成本和提升用户体验是服务调度最关注的评价标准。在成本控制方面,合理的配置资源将有助于控制成本。对于承载服务的节点来说,cpu和内存是主要资源,若cpu和内存的利用率不均衡,尤其当cpu或内存利用率过高时,会导致另一种资源浪费,出现整体资源利用率低,增加成本的情况。准确性和及时性是所有信息的基本质量要求,用于提供信息的服务也是如此。准确性由服务内在逻辑决定,不是本技术的研究内容。及时性则体现为服务的时延,若不能满足用户需求的时效性,会直接影响用户体验。因此,本技术以资源均衡性和服务时延作为微服务调度优化的目标。
[0078]
1)资源均衡性:节点是承载服务的基本单元,资源的均衡利用,不仅能避免高负荷节点造成的服务性能下降,还可以在一定程度上实现成本控制,即避免由低负荷甚至零负荷节点导致的资源浪费和成本提升。本技术基于cpu利用率和内存利用率定义资源均衡性。
[0079]
cpu利用率:节点的cpu利用率被定义为节点中已分配的cpu资源与总cpu资源的比值。已分配的cpu资源通过节点上容器的cpu使用情况计算,如公式(1)所示,n为节点上容器的总数。
[0080]
公式(2)
[0081]
cpu利用率的计算方式如公式(3)所示,capacity
cpu
为节点的总cpu资源。
[0082][0083]
内存利用率:节点的内存利用率被定义为节点中已分配的内存资源与总内存资源的比值。已分配的内存资源通过节点上容器的内存使用情况计算,如公式(4)所示,n为节点上容器的总数。
[0084]
公式(4)
[0085]
内存利用率的计算方式如公式(5)所示,capacity
mem
为节点的总内存资源。
[0086][0087]
节点资源均衡性被定义为节点cpu利用率和内存利用率差值的绝对值,如公式(6)所示。
[0088]gi
=|ratio_node
cpui

ratio_node
memi
| 公式(6)
[0089]
其中,i为节点编号,ratio_node
cpui
表示第i个节点的cpu利用率,ratio_node
memi

示第i个节点的内存利用率。
[0090]
云环境包含大量节点,资源均衡性需要综合考量所有节点,单一的节点均衡性并不能代表容器云的性能良好,因此,本技术采用所有节点的节点资源均衡性的方差评价云环境的资源均衡性,辅助奖励计分,如公式(7)所示。
[0091][0092]
其中,为各节点资源均衡性的均值,gi为第i个节点的资源均衡性。
[0093]
2)服务时延:服务的最终对象是用户,时延是影响用户体验的最重要指标之一。为了权衡所有分布式科技服务的响应性能。影响服务时延的主要因素是数据传输和服务执行,所以采用通信时延和执行时延的加和表示服务时延,如公式(8)所示。
[0094]
t
i,j
=comt
i,j
+exet
i,j
公式(8)
[0095]
其中,t
i,j
表示服务i在节点j上的服务时延,comt
i,j
表示服务i在节点j上的通信时延,由与服务i依赖的服务和数据的网络传输产生。exet
i,j
表示服务i在节点j上的执行时延。
[0096]
服务与服务、数据和用户都有依赖。也就是说,服务之间、数据源与服务之间、用户对服务的请求都存在数据传输。一般情况下,用户请求的数据量可以忽略不计,所以服务的通信时延可以被定义为服务依赖和数据依赖产生的时延总和,如公式(9)。
[0097]
comt
i,j
=sevt
i,j
+datt
i,j
公式(9)
[0098]
其中,sevt
i,j
表示服务i在节点j上由服务依赖产生的时延,可以用依赖强度与各跳带宽商值的加和表示,服务之间的依赖强度被定义为服务之间调用次数除以服务单位时间内总的调用次数;datt
i,j
表示服务i在节点j上由数据依赖产生的时延,可以用数据量与各跳带宽商值的加和表示。
[0099]
假设节点可以部署所有调度给它的服务,也就是说,节点的内存容量可以满足任务需要,又由于不同内存速度的差异不大,所以服务的执行时间主要受节点cpu能力的影响,也与服务自身的复杂度有关。因此,服务的执行时延被定义为服务指令长度与节点cpu的处理能力的比值,如公式(10)所示。
[0100][0101]
其中,mipsj表示节点j的cpu指令执行速度,cpuui表示服务i的cpu利用率,mii表示服务i的指令长度,前两个指标可以通过监控系统获取,第三个指标为先验知识。
[0102]
分布式的节点中存在大量服务,本技术采用所有服务响应时间的均值衡量云环境中服务的延时,如公式(11)所示。
[0103][0104]
其中,i表示服务编号,服务总数为n,j表示节点编号,节点总数为m。
[0105]
(3)基于深度强化学习的调度优化方法
[0106]
综合考虑影响服务调度的因素和调度效率,本技术在服务调度优化过程中主要考虑了3个控制动作的约束、2个辅助奖励的优化目标,并采用基于改进深度确定性策略梯度
算法(deep deterministic policy gradient,ddpg)实现服务的调度优化。
[0107]
1)模型
[0108]
环境描述:本技术将当前服务调度优化任务t时的环境状态e
t
定义为四元组,e
t
=(t,s,n,sn),其中,t为调度优化任务序号;s为表示当前服务的向量;n为表示当前节点的向量;sn为表示当前的服务部署方案的向量,sn中的每个元素为序偶《si,nj》,表示服务si被部署到节点nj上。
[0109]
动作描述:服务调度的动作被定义为在当前优化调度任务中,执行将服务部署到节点的操作,表示为a
t
=(si,nj),即服务si被部署到节点nj上。具体的,动作的选择要符合服务依赖、数据依赖和用户依赖约束的限制。
[0110]
奖励描述:根据服务优化调度的目标,具有低服务延时,高资源均衡性的服务部署方案是更优方案。本技术以动作a
t
完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和作为设置奖励值的依据,计算方法如公式(12)所示。当服务延时降低,资源均衡性提升时,奖励为正值,否则奖励为0或负值。
[0111]rt
=(g
t+1-g
t
)-(avgt
t+1-avgt
t
) 公式(12)
[0112]
2)方法实现
[0113]
服务的调度需求持续产生,调度算法应该具有连续控制的能力。此外,云上的服务具有一定规模,影响因素复杂,且调度是持续进行的,所以调度算法要具有较高的效率。深度确定性策略梯度算法(deep deterministic policy gradient,ddpg)将深度学习和强化学习结合,是为了解决连续动作控制问题而提出的,具有适应复杂非线性问题求解,求解效率较高,支持并行计算的优势,能够适应云环境中服务调度问题的求解。因此,以深度确定策略梯度算法为基础,设计基于深度强化学习的调度算法。
[0114]
如图2所示,本技术将基于深度强化学习的服务调度优化问题描述为一个5元组o
t
=(t,e
t
,a
t
,r
t
,e
t+1
),其中,t是一个在1到n之间的值,为调度优化的任务序号;e
t
表示在第t个任务时刻分布式环境的状态;a
t
表示在状态e
t
下所采取的动作,即服务的调度方案;r
t
表示在状态e
t
下采取a
t
这个动作所获得的回报;e
t+1
表示在状态e
t
下采取a
t
这个动作获得的新状态。描绘各个调度优化任务的5元组会被存放于经验重放池中,为模型训练提供依据。
[0115]
为了解决收敛慢的问题,ddpg使用了由策略网络和价值网络组成的双网络结构,基于ddpg的服务调度优化方法的结构如图2所示。策略网络的输入是当前环境的状态e
t
,输出相应的动作a
t
。价值网络输入是当前环境的状态e
t
和动作a
t
,输出是e
t
状态下执行动作a
t
的打分。此外,策略网络和价值网络都分为在线网络和目标网络。在线网络和策略网络对应的结构相同,但初始化参数不同。
[0116]
基于深度强化学习的调度优化方法的具体流程如图3所示,首先初始化系统参数,构造神经网络,初始化网络权重和超参数,初始化环境。然后将从环境中获取到的状态e
t
传递给策略网络,策略网络输出相应的动作a
t
。将a
t
作为环境的输入获得对应的奖励r
t
和下一时刻的状态e
t+1
。将(e
t
,a
t
,r
t
,e
t+1
)作为一条状态转移数据存储在经验回放池中。从经验存放池中获取小批量数据,训练神经网络。不断重复上面过程,直到模型收敛。此后,在基于该模型,执行服务调度任务,并持续优化。

技术特征:


1.一种分布式的微服务调度优化方法,其特征在于,包括以下步骤;步骤1:基于微服务实例、分布式环境实例、微服务在分布式环境中的部署位置,将第t个调度任务所处的环境建模为四元组,用以描述该时刻微服务实例在分布式环境实例中的部署情况;步骤2:将第t个调度任务的动作建模为二元组,用以描述该时刻微服务s
i
被部署到节点n
j
;步骤3:以低服务延时,高资源均衡性为目标,将动作完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和用于奖励描述;步骤4:将环境、动作和奖励输入ddpg模型,进行训练,得到微服务实例调度优化方案的预测模型;步骤5:使用训练得到的微服务实例调度优化方案预测模型对微服务实例在云环境实例中的调度优化方案进行预测,得到相应的调度优化方案。2.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤1具体为:环境描述:将第t个微服务调度优化任务所处的环境状态e
t
定义为四元组,e
t
=(t,s,n,sn),其中,t为调度优化任务序号;s为表示当前服务的向量,即s={s1,s2,

,s
i
,

,s
n
};n为表示当前节点的向量,即n={n1,n2,

n
j
,

n
m
};sn为表示当前的服务部署方案的向量,即sn=(<s
s1
,n
n1
>,<s
s2
,n
n2
>,

<s
sk
,n
nk
>,

<s
snum
,n
nnum
>),其中,每个元素为序偶<s
sk
,n
nk
>,表示服务s
sk
被部署到节点n
nk
上。3.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤2具体为:动作描述:将第t个微服务调度优化任务的动作定义为在当前优化调度任务中,执行将服务部署到节点的操作a
t
=(s
i
,n
j
),即服务s
i
被部署到节点n
j
上,其中,n
j
的选择要符合服务依赖、数据依赖和用户依赖约束的限制,面向分布式服务环境。4.根据权利要求3所述的一种分布式的微服务调度优化方法,其特征在于,所述服务的调度约束设计如下:服务依赖:微服务的功能相对独立,在分布式环境下,用户需求是复合的,微服务需要通过相互协同来满足用户需求,通过分析微服务之间的调用关系,从微服务的链路数据提取各种强度的服务依赖,用以约束动作集,具体的,从微服务调用链路数据中统计得到服务之间调用关系的次数,再将服务之间调用次数除以服务单位时间内总的调用次数作为服务依赖的强度,此后,在待部署服务与其他服务具有强服务依赖关系时,优先选择强依赖服务所在或者相邻节点;数据依赖:数据是服务的核心要素,所以数据依赖被用于限定动作集,数据源的位置可以通过先验知识获取,服务与数据源的依赖关系通过业务流程描述文件的解析获取,采用矩阵描述,矩阵的行表示服务所在节点编号,矩阵的列表示数据所在节点编号,若服务与数据之间存在依赖,则以服务所在节点编号和数据所在节点编号为下标的元素为1,否则为0,此后,在待部署服务与数据具有依赖关系时,优先选择数据所在或者相邻节点;用户依赖:用户是调用服务的主体,所以用户依赖被用于限定动作集,用户与服务的依赖关系由先验知识获取,采用矩阵描述,矩阵的行表示服务所在节点编号,矩阵的列表示用
户接入的节点编号,若服务与用户之间存在依赖,则以服务所在节点编号和用户接入节点编号为下标的元素为1,否则为0,此后,在待部署服务与用户具有依赖关系时,优先选择用户所在或者相邻节点。5.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤3具体为:奖励描述:以动作a
t
完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和作为设置奖励值的依据,计算方法如公式(1)所示,当服务延时降低,资源均衡性提升时,奖励为正值,否则奖励为0或负值;r
t
=(g
t+1-g
t
)-(avgt
t+1-avgt
t
) 公式(1)如公式(1)所示,r
t
为第t个微服务调度优化任务执行后的奖励值,g
t
和g
t+1
分别为动作a
t
执行前后的资源均衡性,avgt
t
和avgt
t+1
分别为动作a
t
执行前后的服务时延。6.根据权利要求5所述的一种分布式的微服务调度优化方法,其特征在于,所述资源均衡性和服务时延的计算方法如下:1)资源均衡性:基于cpu利用率和内存利用率定义资源均衡性;cpu利用率:节点的cpu利用率被定义为节点中已分配的cpu资源与总cpu资源的比值,已分配的cpu资源通过节点上容器的cpu使用情况计算,如公式(2)所示,n为节点上容器的总数;公式(2)cpu利用率的计算方式如公式(3)所示,capacity
cpu
为节点的总cpu资源;内存利用率:节点的内存利用率被定义为节点中已分配的内存资源与总内存资源的比值,已分配的内存资源通过节点上容器的内存使用情况计算,如公式(4)所示,n为节点上容器的总数;公式(4)内存利用率的计算方式如公式(5)所示,capacity
mem
为节点的总内存资源;节点资源均衡性被定义为节点cpu利用率和内存利用率差值的绝对值,如公式(6)所示;g
i
=|ratio_node
cpui

ratio_node
memi
| 公式(6)其中,i为节点编号,ratio_node
cpui
表示第i个节点的cpu利用率,ratio_node
memi
表示第i个节点的内存利用率;云环境包含大量节点,资源均衡性需要综合考量所有节点,单一的节点均衡性并不能代表容器云的性能良好,采用所有节点的节点资源均衡性的方差评价云环境的资源均衡性,辅助奖励计分,如公式(7)所示;其中,为各节点资源均衡性的均值,g
i
为第i个节点的资源均衡性;
2)服务时延:采用通信时延和执行时延的加和表示服务时延,如公式(8)所示;t
i,j
=comt
i,j
+exet
i,j
公式(8)其中,t
i,j
表示服务i在节点j上的服务时延,comt
i,j
表示服务i在节点j上的通信时延,由与服务i依赖的服务和数据的网络传输产生,exet
i,j
表示服务i在节点j上的执行时延;服务的通信时延可以被定义为服务依赖和数据依赖产生的时延总和,如公式(9);comt
i,j
=sevt
i,j
+datt
i,j
公式(9)其中,sevt
i,j
表示服务i在节点j上由服务依赖产生的时延,用依赖强度与各跳带宽商值的加和表示,服务之间的依赖强度被定义为服务之间调用次数除以服务单位时间内总的调用次数;datt
i,j
表示服务i在节点j上由数据依赖产生的时延,可以用数据量与各跳带宽商值的加和表示;假设节点可以部署所有调度给它的服务,服务的执行时延被定义为服务指令长度与节点cpu的处理能力的比值,如公式(10)所示;其中,mips
j
表示节点j的cpu指令执行速度,cpuu
i
表示服务i的cpu利用率,mi
i
表示服务i的指令长度,前两个指标可以通过监控系统获取,第三个指标为先验知识;分布式的节点中存在大量服务,采用所有服务响应时间的均值衡量云环境中服务的延时,如公式(11)所示。其中,i表示服务编号,服务总数为n,j表示节点编号,节点总数为m。7.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤4具体为:将基于深度强化学习的微服务调度优化问题描述为一个5元组o
t
=(t,e
t
,a
t
,r
t
,e
t+1
),其中,t是一个在1到n之间的值,为调度优化的任务序号;e
t
表示在第t个任务时刻分布式环境的状态;a
t
表示在状态e
t
下所采取的动作,即服务的调度方案;r
t
表示在状态e
t
下采取a
t
这个动作所获得的回报;e
t+1
表示在状态e
t
下采取a
t
这个动作获得的新状态,描绘各个调度优化任务的5元组会被存放于经验重放池中,为模型训练提供依据;ddpg使用了由策略网络和价值网络组成的双网络结构,策略网络的输入是当前环境的状态e
t
,输出相应的动作a
t
。价值网络输入是当前环境的状态e
t
和动作a
t
,输出是e
t
状态下执行动作a
t
的打分,此外,策略网络和价值网络都分为在线网络和目标网络,在线网络和策略网络对应的结构相同,但初始化参数不同。8.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤5具体为:基于训练得到的模型,将当前微服务调度优化任务的环境、由服务依赖矩阵、数据依赖矩阵和用户依赖矩阵构成的调度约束输入至训练得到的模型,执行模型,生成调度优化方案,并将执行当前微服务调度优化任务的得到的奖励值反馈给环境,进行持续优化。

技术总结


一种分布式的微服务调度优化方法,包括以下步骤;步骤1:将第t个调度任务所处的环境建模为四元组,用以描述该时刻微服务实例在分布式环境实例中的部署情况;步骤2:将第t个调度任务的动作建模为二元组,用以描述该时刻微服务被部署到节点;步骤3:将动作完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和用于奖励描述;步骤4:进行训练,得到微服务实例调度优化方案的预测模型;步骤5:使用预测模型进行预测,得到相应的调度优化方案。本发明将服务之间、服务与数据之间、服务与用户之间的依赖引入微服务调度约束,并利用了强化学习的持续优化能力,是一种适应于分布式场景,具有持续优化能力的微服务调度优化方法。具有持续优化能力的微服务调度优化方法。具有持续优化能力的微服务调度优化方法。


技术研发人员:

李寒 赵卓峰

受保护的技术使用者:

北方工业大学

技术研发日:

2022.11.14

技术公布日:

2023/2/23

本文发布于:2024-09-22 04:07:47,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/60863.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   分布式   公式   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议