CN114780233A - 基于微服务链路分析和强化学习的调度方法及装置 - Google Patents

基于微服务链路分析和强化学习的调度方法及装置 Download PDF

Info

Publication number
CN114780233A
CN114780233A CN202210323609.7A CN202210323609A CN114780233A CN 114780233 A CN114780233 A CN 114780233A CN 202210323609 A CN202210323609 A CN 202210323609A CN 114780233 A CN114780233 A CN 114780233A
Authority
CN
China
Prior art keywords
cloud server
link
micro
service
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210323609.7A
Other languages
English (en)
Inventor
徐敏贤
宋承浩
叶可江
须成忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN202210323609.7A priority Critical patent/CN114780233A/zh
Publication of CN114780233A publication Critical patent/CN114780233A/zh
Priority to PCT/CN2022/138189 priority patent/WO2023185090A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于微服务链路分析和强化学习的调度方法及装置。该方法及装置基于深度学习模型来对云服务器集群进行调度,强化学习可以选用三种不同的调度方式:横向扩展、纵向扩展与管制。本发明利用基于深度学习模型的工作负载与链路分析器对微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点。本发明基于Deep Q‑Learning的强化学习算法,对云服务器负载数据进行训练,利用该算法训练出适应于不同负载状态下的深度学习模型。本发明解决了可能存在的链路长度与微服务延迟不匹配的问题,能得到一个针对延迟本身的优化目标,依据于此对云服务器进行资源调度能有效的缓解存在的微服务链路延迟问题。

Description

基于微服务链路分析和强化学习的调度方法及装置
技术领域
本发明涉及一种基于微服务链路分析和强化学习的调度方法及装置。
背景技术
云服务器的微服务调度算法已经成为了考验高变动负载下云服务器负载能力的重要指标之一。一个优秀的微服务链路调度算法能够为云服务器提供商减少服务器资源的浪费,也能大大提高云服务器使用者的用户体验,提高云服务器的稳定性,使得云服务器中的微服务的资源分配更加合理,提高整个云服务器集群中微服务的鲁棒性。目前而言,主流的云服务器微服务链路延迟调度算法包括有资源分配调度算法、基于最长链路的微服务调度算法。其中:
(1)资源分配调度算法:资源分配调度算法利用了云服务器微服务本身的预设资源来进行分配。在资源充足的情况下能取得较好的效果。在这种资源分配方式下可以尽可能的减少微服务之间资源的竞争,一定程度上提高了云服务器的稳定性。
(2)基于最长链路的微服务调度算法:基于最长链路的微服务调度算法利用了微服务之前的链路关系来进行资源的分配。对于集群中的微服务而言,通过分析其链路关系可以得到链路中最长的一条或多条链路,依据此标准来对资源进行分配。具有最长链路的微服务链路上的所有微服务将被优先分配资源,依次从链路最长到链路最短来进行资源的分配。在这种资源分配方式下能一定程度上缓解微服务之间的资源竞争,优先给较长链路提供更多的资源,也能降低微服务整体的时间延迟。
但现有的许多预测方法诸如回归预测方法虽然能够提供对于简单的时间序列预测的结果,但是难以应对目前高维度的云服务器工作负载预测问题。虽然循环神经网络与长短期记忆能相对准确的得到短时间内的服务器负载预测值,但是由于其结构与问题,对一段时间内的工作负载预测不够准确,长短期记忆的预测时间也较长,时效性不佳。
同时现有的许多主流的微服务资源调度方法虽然能够对资源充足情况下的微服务进行简单的调度,但是难以应付对于延迟高度敏感的云服务器集群中的资源竞争。按照资源分配调度算法,在云服务器集群中,经常有数十个容器同时运行在一个节点上,导致了微服务的资源并不能按照预设的资源来进行分配,会出现资源竞争。这种调度算法并不适用于目前的云服务器集群架构中。按照基于最长链路的微服务调度算法,若遇到微服务的关键节点不在最长链路上的情况下,不能正确的分配资源给关键节点,这导致了云服务器中的微服务延迟问题不能得到及时解决。
发明内容
本发明实施例提供了一种基于微服务链路分析和强化学习的调度方法及装置,以至少解决现有云服务器中的微服务延迟的技术问题。
根据本发明的一实施例,提供了一种基于微服务链路分析和强化学习的调度方法,包括以下步骤:
基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据;
基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于Deep Q-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型;
使用深度学习模型对云服务器集群进行集群调度,其中调度方式包括:横向扩展、纵向扩展与管制。
进一步地,基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据包括:
对工作负载进行预处理和数据清洗,并对实际的数据集中得到的原始数据进行处理获取请求数量;
在收集到请求数量与云服务器的工作负载之间的关系之后,通过深度学习算法来得到整个所需要进行实验的请求数量的数据;
在生成请求并发送至请求处理器之后,一方面将请求发送给目标集群,另一方面收集来自云服务器集群的负载情况;
将负载情况信息传递给工作负载与链路分析器,通过微服务的关键路径分析,得到当前状态下微服务的链路关系,结合获得的链路延迟数据,得到微服务的关键路径;
通过基于决策树的分类方式对关键节点进行判断并得到结果。
进一步地,对工作负载进行预处理和数据清洗,并对实际的数据集中得到的原始数据进行处理获取请求数量包括:
首先删除包含空数据的列,按照时间序列对数据集进行分类,然后利用分组函数计算出具有相同时间戳的每个参数的平均值;
使用MinMaxScaler来对数据集进行归一化处理;MinMaxScaler的操作是基于min-max缩放法,具体的公式如下公式1与公式2所示;
Figure BDA0003572657190000031
Xscaled=Xstd*(Xmax-Xmin)+Xmin (2)
使用MinMaxScaler对每个特征进行变换,将每个特征缩放为0和1之间的值,X代表待处理数据的集合,Xmin和Xmax是集合中的最小和最大数据,最终处理后的数据用Xscaled表示。
进一步地,在在收集到请求数量与云服务器的工作负载之间的关系之后,通过深度学习算法来得到整个所需要进行实验的请求数量的数据之后,方法还包括:
对用户行为进行分析,并且基于用户的行为将用户访问网站的不同位置进行了记录,通过对访问网站的不同请求进行模拟,模拟出现实生活中用户的行为。
进一步地,负载情况包括:微服务自身的延迟、云服务器的资源消耗、微服务的请求延迟、请求成功率信息。
进一步地,通过基于决策树的分类方式对关键节点进行判断并得到结果包括:
通过训练针对于动态变化的链路关系得到一个针对是否为关键节点的决策树模型;该决策树有三种决策结果:属于关键节点、不属于关键节点与潜在的关键节点;三种结果中,每一条关键路径中至少包括一个关键节点,非关键节点和潜在关键节点不存在于关键路径中。
进一步地,基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于Deep Q-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型包括:
在确定关键节点的位置之后,将通过训练好的深度学习模型来对云服务器集群来进行调度决策;强化学习使用的是基于深度学习神经网络的深度强化学习Deep Q-Learning。
进一步地,通过计算一系列action之后的Q-value来训练模型,计算方程如公式3所示:
Figure BDA0003572657190000041
其中处于状态s并执行行动a所产生的Q-value是奖励r(s,a)加上下一个状态s'产生的最高Q-value;γ是discount,其控制着未来的奖励的对现在的状态下的Q-value的影响;
将上述公式3中的方程进行迭代,得到公式4,为最终收敛情况下的方程:
Q*(s,a)=∑s′P(s′∣s,a)(R(s,a,s′)+γmaxa′Q*(s′,a′)) (4)
得到方程4中的存储过去Q-value的部分,为公式5:
γmaxa′Q*(s′,a′) (5)。
进一步地,横向扩展通过在集群内的云服务器上增加或删除微服务的副本来调整资源;云服务器集群通过增加微服务的副本降低云服务器集群的工作负载;
纵向扩展通过调节分配给微服务的CPU、内存或网络资源的数量来调整当前云服务器的处理服务能力;云服务器集群通过增加集群内的单个云服务器或多个云服务器关于单个或多个微服务的资源降低云服务器集群的工作负载;
管制通过动态的开启或者关闭可选组件来降低微服务链路延迟,当云服务及集群从极端情况过渡到正常工作状态之后,被关闭的可选组件将被管制重新开启。
根据本发明的另一实施例,提供了一种基于微服务链路分析和强化学习的调度装置,包括:
负载生成器,用于基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据;
工作负载与链路分析器,用于基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于Deep Q-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型;
集群调度器,用于使用深度学习模型对云服务器集群进行集群调度,其中调度方式包括:横向扩展、纵向扩展与管制。
一种存储介质,存储介质存储有能够实现上述任意一项基于微服务链路分析和强化学习的调度方法的程序文件。
一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的基于微服务链路分析和强化学习的调度方法。
本发明实施例中的基于微服务链路分析和强化学习的调度方法及装置,基于深度学习模型来对云服务器集群进行调度,强化学习可以选用三种不同的调度方式:横向扩展、纵向扩展与管制。本发明利用基于深度学习模型的工作负载与链路分析器对微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点。本发明基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用该算法训练出适应于不同负载状态下的深度学习模型。本发明利用微服务链路中的最大延迟链路来确定链路中的关键节点的位置。相比于基于最长链路的微服务调度算法,本发明解决了可能存在的链路长度与微服务延迟不匹配的问题,能得到一个针对延迟本身的优化目标,依据于此对云服务器进行资源调度能有效的缓解存在的微服务链路延迟问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明基于微服务链路分析和强化学习的调度方法的系统模型图;
图2为本发明基于微服务链路分析和强化学习中三种调度策略图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明一实施例,提供了一种基于微服务链路分析和强化学习的调度方法,包括以下步骤:
基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据;
基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于Deep Q-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型;
使用深度学习模型对云服务器集群进行集群调度,其中调度方式包括:横向扩展、纵向扩展与管制。
本发明实施例中的基于微服务链路分析和强化学习的调度方法,基于深度学习模型来对云服务器集群进行调度,强化学习可以选用三种不同的调度方式:横向扩展、纵向扩展与管制。本发明利用基于深度学习模型的工作负载与链路分析器对微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点。本发明基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用该算法训练出适应于不同负载状态下的深度学习模型。本发明利用微服务链路中的最大延迟链路来确定链路中的关键节点的位置。相比于基于最长链路的微服务调度算法,本发明解决了可能存在的链路长度与微服务延迟不匹配的问题,能得到一个针对延迟本身的优化目标,依据于此对云服务器进行资源调度能有效的缓解存在的微服务链路延迟问题。
其中,基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据包括:
对工作负载进行预处理和数据清洗,并对实际的数据集中得到的原始数据进行处理获取请求数量;
在收集到请求数量与云服务器的工作负载之间的关系之后,通过深度学习算法来得到整个所需要进行实验的请求数量的数据;
在生成请求并发送至请求处理器之后,一方面将请求发送给目标集群,另一方面收集来自云服务器集群的负载情况;
将负载情况信息传递给工作负载与链路分析器,通过微服务的关键路径分析,得到当前状态下微服务的链路关系,结合获得的链路延迟数据,得到微服务的关键路径;
通过基于决策树的分类方式对关键节点进行判断并得到结果。
其中,对工作负载进行预处理和数据清洗,并对实际的数据集中得到的原始数据进行处理获取请求数量包括:
首先删除包含空数据的列,按照时间序列对数据集进行分类,然后利用分组函数计算出具有相同时间戳的每个参数的平均值;
使用MinMaxScaler来对数据集进行归一化处理;MinMaxScaler的操作是基于min-max缩放法,具体的公式如下公式1与公式2所示;
Figure BDA0003572657190000091
Xscaled=Xstd*(Xmax-Xmin)+Xmin (2)
使用MinMaxScaler对每个特征进行变换,将每个特征缩放为0和1之间的值,X代表待处理数据的集合,Xmin和Xmax是集合中的最小和最大数据,最终处理后的数据用Xscaled表示。
其中,在在收集到请求数量与云服务器的工作负载之间的关系之后,通过深度学习算法来得到整个所需要进行实验的请求数量的数据之后,方法还包括:
对用户行为进行分析,并且基于用户的行为将用户访问网站的不同位置进行了记录,通过对访问网站的不同请求进行模拟,模拟出现实生活中用户的行为。
其中,负载情况包括:微服务自身的延迟、云服务器的资源消耗、微服务的请求延迟、请求成功率信息。
其中,通过基于决策树的分类方式对关键节点进行判断并得到结果包括:
通过训练针对于动态变化的链路关系得到一个针对是否为关键节点的决策树模型;该决策树有三种决策结果:属于关键节点、不属于关键节点与潜在的关键节点;三种结果中,每一条关键路径中至少包括一个关键节点,非关键节点和潜在关键节点不存在于关键路径中。
其中,基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于Deep Q-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型包括:
在确定关键节点的位置之后,将通过训练好的深度学习模型来对云服务器集群来进行调度决策;强化学习使用的是基于深度学习神经网络的深度强化学习Deep Q-Learning。
其中,通过计算一系列action之后的Q-value来训练模型,计算方程如公式3所示:
Figure BDA0003572657190000101
其中处于状态s并执行行动a所产生的Q-value是奖励r(s,a)加上下一个状态s'产生的最高Q-value;γ是discount,其控制着未来的奖励的对现在的状态下的Q-value的影响;
将上述公式3中的方程进行迭代,得到公式4,为最终收敛情况下的方程:
Q*(s,a)=∑s′P(s′∣s,a)(R(s,a,s′)+γmaxa′Q*(s′,a′)) (4)
得到方程4中的存储过去Q-value的部分,为公式5:
γmaxa′Q*(s′,a′) (5)。
其中,横向扩展通过在集群内的云服务器上增加或删除微服务的副本来调整资源;云服务器集群通过增加微服务的副本降低云服务器集群的工作负载;
纵向扩展通过调节分配给微服务的CPU、内存或网络资源的数量来调整当前云服务器的处理服务能力;云服务器集群通过增加集群内的单个云服务器或多个云服务器关于单个或多个微服务的资源降低云服务器集群的工作负载;
管制通过动态的开启或者关闭可选组件来降低微服务链路延迟,当云服务及集群从极端情况过渡到正常工作状态之后,被关闭的可选组件将被管制重新开启。
下面以具体实施例,对本发明的基于微服务链路分析和强化学习的调度方法进行详细说明:
作为新时代IT技术的重要组成部分,面向使用者的云计算相关业务为广大用户提供了诸多便利。面向用户的微服务通常由分布式的云服务器集群提供支持。用户在使用这些服务时通常会对服务器的链路延迟有着高度敏感,因为服务器链路延迟直接关系到服务器的服务质量,从而影响到用户的体验。微服务集群内的链路延迟是由服务器集群内的微服务之前互相资源竞争造成的。为了解决云服务器中微服务的链路延迟高这一问题,本发明基于强化学习,提出了一种基于不同的云服务器负载情况进行在线调节的高效智能调度方法,使用了包括横向扩展、纵向扩展等方法来重新分配机器内的资源。本发明的目的是利用服务器负载调度算法,解决云服务器中存在的微服务的链路延迟带来的影响。本发明利用微服务链路中的最大延迟链路来确定链路中的关键节点的位置。相比于基于最长链路的微服务调度算法,本发明解决了可能存在的链路长度与微服务延迟不匹配的问题,能得到一个针对延迟本身的优化目标,依据于此对云服务器进行资源调度能有效的缓解存在的微服务链路延迟问题。
为达到上述目的,本发明基于深度学习模型来对云服务器集群进行调度,强化学习可以选用三种不同的调度方式:横向扩展、纵向扩展与管制。本发明利用基于深度学习模型的工作负载与链路分析器对微服务的链路进行分析与决策,选取最长延迟的链路(关键路径)与节点(关键节点)。本发明基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用该算法训练出适应于不同负载状态下的深度学习模型。具体为:
(1)数据源介绍
本发明采用的第一组数据集是来自Alibaba,2018年的云服务器集群的工作负载数据集cluster-trace-v2018。这个数据集内包含着跨度为8天的工作负载数据,该项数据是由4034台同构的服务器生成的。其中每一台服务器均具有96个CPU核心,它们的内存大小也是相同的。本发明选取了该数据集中的machine_usage.csv进行分析,该machine_usage.csv数据集包括了机器号machine_id、时间戳time_stamp、当前机器的CPU利用率cpu_util_percent、当前时刻机器的内存占用mem_util_percent等参数,其记录数据的时间间隔为10秒。本发明去掉了一些常出现空值的参考变量,将偶尔出现空值的参考变量的空值赋0。
本发明使用的实验平台有两个,其中一个是基于SockShop的微服务平台。SockShop模拟了一个销售袜子的电子商务网站中面向用户的部分。目的是帮助用户用于演示和测试微服务和云原生技术。SockShop的微服务被设计为具有最小的资源预计分配量,即每一个微服务的配额在进行初始化的时候都是尽可能小的。微服务之间使用DNS来寻找其他相关联的微服务。在对云服务器进行调度测试时可以根据本发明的需要,在整个微服务框架中插入负载均衡器或服务路由器。本发明使用的SockShop版本是基于Kubernetes的正式版本,里面除了基本微服务组件之外还包括了基于Jaeger的微服务监测组件。
本发明使用的另一个实验平台是train-ticket,该项目是一个基于微服务架构的火车票预订系统,包含41个微服务。所使用的编程语言和框架包括了Java、Python、Go等。train-ticket模拟了在线售票网站的前端与后端,包括了购票、售票、查询票、退票、登陆等一系列功能,此外还包括了用于监控系统状态的Jaeger微服务检测组件以及控制微服务整体稳定性的工作负载均衡器。
(2)概念定义
本发明的系统模型(如图1所示)包括了以下组成部分:负载生成器、工作负载与链路分析器、集群调度器。
历史工作负载:历史工作负载指的是由特定的服务器或内建的程序定时收集到的来自于运行中的云服务器集群的工作负载,主要包括了时间戳、机器编号、CPU利用率、内准占用大小等信息。在本发明中,历史工作负载来自于Alibaba的数据集。
负载生成器:在本发明的模型中,负载生成器是由一系列组件共同构成的,这些组件包括了工作负载与处理器、基于Locust的请求生成器以及存储着历史工作负载的数据库。这些组件相互协调的完成了从历史数据库中提取出需要的工作负载数据与特征并加以处理,再通过负载生成器进行模拟真实用户使用情况,并转化成对服务器集群的请求发送出去。
工作负载与链路分析器:工作负载与链路分析器主要的任务是分析从云服务器发送来的请求,并结合微服务的链路关系对其进行链路分析,找出关键节点与关键路径,在这之后通过部署好深度学习/深度学习模型的集群调度器来对云服务器群的微服务发送调度请求。
集群调度器:集群调度器主要作用于云服务器集群,通过接受来自工作负载与链路分析器的调度请求来完成对相应的云服务器中的微服务进行调度。这种调度的方式主要分为三种:横向扩展Vertical、纵向扩展Horizontal与管制Brownout。
关键节点与关键路径:关键路径指的是在一个微服务链路中,对于整个系统中的所有最长不重复链路中,链路上的微服务延迟之和最大的那一条路径。在同一个微服务集群中,可以存在一个或多个关键路径。关键节点指的是在寻找到关键路径之后,通过测试不同的微服务在资源利用率上的表现,即在一定的请求数量下通过限制其资源消耗,观察整个系统的稳定性与延迟的高低,来区分路径上的关键节点与非关键节点。
(3)解决方法
3.1步骤一:源数据的预处理
这一步中包含了图1中的Step1:工作负载的预处理部分和数据清洗部分,并对实际的数据集中得到的原始数据进行处理。无论是对于来自Alibaba还是来自Google的云工作负载的原始数据,本发明首先要删除包含空数据的列。因为不管是使用零填充方案还是直接忽略这些数据,这些冗余项都会对本发明的预测数据产生负面影响。在这之后,本发明按照时间序列对数据集进行分类,然后计算出具有相同时间戳的每个参数的平均值,利用分组函数(Python Groupby函数)可以做到这一点。接下来,本发明对Alibaba数据集进行归一化处理。归一化是一种降低维度的数据处理方法。从模型优化的角度来看,归一化不仅可以提高模型的收敛速度,还可以提高预测的准确性。归一化方法有两种形式,一种是将数字改为小数,即介于0与1之间。另一种是将维度表达式改为非维度表达式,即转化为标量。本发明选择了第一种归一化的方法,本发明使用MinMaxScaler来实现这一功能。MinMaxScaler的操作是基于min-max缩放法,具体的公式如下公式1与公式2所示。
Figure BDA0003572657190000141
Xscaled=Xstd*(Xmax-Xmin)+Xmin (2)
本发明使用MinMaxScaler对每个特征进行变换,将每个特征缩放为0和1之间的值,X代表待处理数据的集合,Xmin和Xmax是集合中的最小和最大数据,最终处理后的数据用Xscaled表示。
3.2步骤二:转化为基于用户行为的请求数量
在获得处理之后的Alibaba的工作负载之后,本发明通过在集群中模拟生成请求来达到与原数据集相同的效果。在收集到请求数量与云服务器的工作负载之间的关系之后,本发明通过深度学习算法来得到整个所需要进行实验的请求数量的数据。
在此之后本发明对用户行为进行分析,并且基于用户的行为将用户访问网站的不同位置进行了记录,在这里用户访问的网站的不同位置指的是访问基于微服务主页的网站及其子网站,例如网站主页、网站索引页、网站分类页、网站登录页等。通过对这些访问网站的不同请求进行模拟,本发明能更加贴近实际的模拟出现实生活中用户的行为。
3.3步骤三:工作负载与微服务链路分析
在生成请求并发送至请求处理器之后,本发明一方面将请求发送给目标集群,一方面收集来自云服务器集群的负载情况。这些负载情况主要包括了微服务自身的延迟、云服务器的资源消耗、微服务的请求延迟、请求成功率等信息。将这些信息传递给工作负载与链路分析器,通过微服务的关键路径分析,就可以得到当前状态下微服务的链路关系,结合获得的链路延迟数据,即可得到微服务的关键路径。
对于关键节点,本发明是通过基于决策树的分类方式进行判断并得到结果。通过训练针对于动态变化的链路关系得到一个精准针对是否为关键节点的决策树模型。该决策树有三种决策结果:属于关键节点、不属于关键节点与潜在的关键节点。三种结果中,每一条关键路径中至少包括一个关键节点,非关键节点和潜在关键节点可以不存在于关键路径中。
在确定关键节点的位置之后,本发明将通过训练好的深度学习模型来对云服务器集群来进行调度决策。在本发明中,强化学习使用的是基于深度学习神经网络的深度强化学习Deep Q-Learning。
Deep Q-Learning是强化学习的一种常用的方法,基于Q-Learing的基础上,将需要多次迭代生成的Q-Table转化成了具有相对应的全部参数的神经网络,将其交付给深度学习进行训练。对于Q-Learing而言,本发明需要通过计算一系列action之后的Q-value来训练模型,计算方程如公式3所示:
Figure BDA0003572657190000151
上面的等式可以看出,处于状态s并执行行动a所产生的Q-value是奖励r(s,a)加上下一个状态s'可能产生的最高Q-value。这里的γ是discount,其控制着未来的奖励的对现在的状态下的Q-value的影响。
本发明将上述公式3中的方程进行迭代,可以得到公式4,即最终收敛情况下的方程。
Q*(s,a)=∑s′P(s′∣s,a)(R(s,a,s′)+γmaxa′Q*(s′,a′)) (4)
对于神经网络而言,本发明训练的目标就是上述方程4中的存储过去Q-value的部分,即公式5。
γmaxa′Q*(s′,a′) (5)
3.4步骤四:集群调度策略
在经过关键路径与节点判断以及基于模型的调度决策之后,本发明使用三种算法来对云服务器集群中的微服务进行调度,三种调度策略如图2所示,这三种调度策略分别为横向扩展Vertical、纵向扩展Horizontal、管制Brownout。
横向扩展又称水平扩展。横向扩展通过在集群内的云服务器上增加或删除微服务的副本(replicates)来调整资源,以改善资源的使用和系统的可用性。云服务器集群能通过增加微服务的副本来达到降低云服务器集群的工作负载的目的。
纵向扩展:纵向扩展又称水平扩展。纵向扩展通过调节分配给微服务实例的CPU、内存或网络资源的数量来调整当前云服务器的处理服务能力。云服务器集群能通过增加集群内的单个云服务器或多个云服务器关于单个或多个微服务的资源来达到降低云服务器集群的工作负载的目的。
管制则是通过动态的开启或者关闭可选组件来达到降低微服务链路延迟的目的,管制由于会在一定程度上影响到微服务整体的完整性,一般只有在极端情况,例如云服务集群持续处于过在状态,管制机制才会触发并关闭可选组件,当云服务及集群从极端情况过渡到正常工作状态之后,被关闭的可选组件将被管制重新开启。
实施例2
根据本发明的另一实施例,提供了一种基于微服务链路分析和强化学习的调度装置,包括:
负载生成器,用于基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据;
工作负载与链路分析器,用于基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于Deep Q-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型;
集群调度器,用于使用深度学习模型对云服务器集群进行集群调度,其中调度方式包括:横向扩展、纵向扩展与管制。
本发明实施例中的基于微服务链路分析和强化学习的调度装置,基于深度学习模型来对云服务器集群进行调度,强化学习可以选用三种不同的调度方式:横向扩展、纵向扩展与管制。本发明利用基于深度学习模型的工作负载与链路分析器对微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点。本发明基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用该算法训练出适应于不同负载状态下的深度学习模型。本发明利用微服务链路中的最大延迟链路来确定链路中的关键节点的位置。相比于基于最长链路的微服务调度算法,本发明解决了可能存在的链路长度与微服务延迟不匹配的问题,能得到一个针对延迟本身的优化目标,依据于此对云服务器进行资源调度能有效的缓解存在的微服务链路延迟问题。
下面以具体实施例,对本发明的基于微服务链路分析和强化学习的调度装置进行详细说明:
作为新时代IT技术的重要组成部分,面向使用者的云计算相关业务为广大用户提供了诸多便利。面向用户的微服务通常由分布式的云服务器集群提供支持。用户在使用这些服务时通常会对服务器的链路延迟有着高度敏感,因为服务器链路延迟直接关系到服务器的服务质量,从而影响到用户的体验。微服务集群内的链路延迟是由服务器集群内的微服务之前互相资源竞争造成的。为了解决云服务器中微服务的链路延迟高这一问题,本发明基于强化学习,提出了一种基于不同的云服务器负载情况进行在线调节的高效智能调度装置,使用了包括横向扩展、纵向扩展等方法来重新分配机器内的资源。本发明的目的是利用服务器负载调度算法,解决云服务器中存在的微服务的链路延迟带来的影响。本发明利用微服务链路中的最大延迟链路来确定链路中的关键节点的位置。相比于基于最长链路的微服务调度算法,本发明解决了可能存在的链路长度与微服务延迟不匹配的问题,能得到一个针对延迟本身的优化目标,依据于此对云服务器进行资源调度能有效的缓解存在的微服务链路延迟问题。
为达到上述目的,本发明基于深度学习模型来对云服务器集群进行调度,强化学习可以选用三种不同的调度方式:横向扩展、纵向扩展与管制。本发明利用基于深度学习模型的工作负载与链路分析器对微服务的链路进行分析与决策,选取最长延迟的链路(关键路径)与节点(关键节点)。本发明基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用该算法训练出适应于不同负载状态下的深度学习模型。具体为:
(1)数据源介绍
本发明采用的第一组数据集是来自Alibaba,2018年的云服务器集群的工作负载数据集cluster-trace-v2018。这个数据集内包含着跨度为8天的工作负载数据,该项数据是由4034台同构的服务器生成的。其中每一台服务器均具有96个CPU核心,它们的内存大小也是相同的。本发明选取了该数据集中的machine_usage.csv进行分析,该machine_usage.csv数据集包括了机器号machine_id、时间戳time_stamp、当前机器的CPU利用率cpu_util_percent、当前时刻机器的内存占用mem_util_percent等参数,其记录数据的时间间隔为10秒。本发明去掉了一些常出现空值的参考变量,将偶尔出现空值的参考变量的空值赋0。
本发明使用的实验平台有两个,其中一个是基于SockShop的微服务平台。SockShop模拟了一个销售袜子的电子商务网站中面向用户的部分。目的是帮助用户用于演示和测试微服务和云原生技术。SockShop的微服务被设计为具有最小的资源预计分配量,即每一个微服务的配额在进行初始化的时候都是尽可能小的。微服务之间使用DNS来寻找其他相关联的微服务。在对云服务器进行调度测试时可以根据本发明的需要,在整个微服务框架中插入负载均衡器或服务路由器。本发明使用的SockShop版本是基于Kubernetes的正式版本,里面除了基本微服务组件之外还包括了基于Jaeger的微服务监测组件。
本发明使用的另一个实验平台是train-ticket,该项目是一个基于微服务架构的火车票预订系统,包含41个微服务。所使用的编程语言和框架包括了Java、Python、Go等。train-ticket模拟了在线售票网站的前端与后端,包括了购票、售票、查询票、退票、登陆等一系列功能,此外还包括了用于监控系统状态的Jaeger微服务检测组件以及控制微服务整体稳定性的工作负载均衡器。
(2)概念定义
本发明的系统模型(如图1所示)包括了以下组成部分:负载生成器、工作负载与链路分析器、集群调度器。
历史工作负载:历史工作负载指的是由特定的服务器或内建的程序定时收集到的来自于运行中的云服务器集群的工作负载,主要包括了时间戳、机器编号、CPU利用率、内准占用大小等信息。在本发明中,历史工作负载来自于Alibaba的数据集。
负载生成器:在本发明的模型中,负载生成器是由一系列组件共同构成的,这些组件包括了工作负载与处理器、基于Locust的请求生成器以及存储着历史工作负载的数据库。这些组件相互协调的完成了从历史数据库中提取出需要的工作负载数据与特征并加以处理,再通过负载生成器进行模拟真实用户使用情况,并转化成对服务器集群的请求发送出去。
工作负载与链路分析器:工作负载与链路分析器主要的任务是分析从云服务器发送来的请求,并结合微服务的链路关系对其进行链路分析,找出关键节点与关键路径,在这之后通过部署好深度学习/深度学习模型的集群调度器来对云服务器群的微服务发送调度请求。
集群调度器:集群调度器主要作用于云服务器集群,通过接受来自工作负载与链路分析器的调度请求来完成对相应的云服务器中的微服务进行调度。这种调度的方式主要分为三种:横向扩展Vertical、纵向扩展Horizontal与管制Brownout。
关键节点与关键路径:关键路径指的是在一个微服务链路中,对于整个系统中的所有最长不重复链路中,链路上的微服务延迟之和最大的那一条路径。在同一个微服务集群中,可以存在一个或多个关键路径。关键节点指的是在寻找到关键路径之后,通过测试不同的微服务在资源利用率上的表现,即在一定的请求数量下通过限制其资源消耗,观察整个系统的稳定性与延迟的高低,来区分路径上的关键节点与非关键节点。
(3)解决方法
3.1步骤一:源数据的预处理
这一步中包含了图1中的Step1:工作负载的预处理部分和数据清洗部分,并对实际的数据集中得到的原始数据进行处理。无论是对于来自Alibaba还是来自Google的云工作负载的原始数据,本发明首先要删除包含空数据的列。因为不管是使用零填充方案还是直接忽略这些数据,这些冗余项都会对本发明的预测数据产生负面影响。在这之后,本发明按照时间序列对数据集进行分类,然后计算出具有相同时间戳的每个参数的平均值,利用分组函数(Python Groupby函数)可以做到这一点。接下来,本发明对Alibaba数据集进行归一化处理。归一化是一种降低维度的数据处理方法。从模型优化的角度来看,归一化不仅可以提高模型的收敛速度,还可以提高预测的准确性。归一化方法有两种形式,一种是将数字改为小数,即介于0与1之间。另一种是将维度表达式改为非维度表达式,即转化为标量。本发明选择了第一种归一化的方法,本发明使用MinMaxScaler来实现这一功能。MinMaxScaler的操作是基于min-max缩放法,具体的公式如下公式1与公式2所示。
Figure BDA0003572657190000211
Xscaled=Xstd*(Xmax-Xmin)+Xmin (2)
本发明使用MinMaxScaler对每个特征进行变换,将每个特征缩放为0和1之间的值,X代表待处理数据的集合,Xmin和Xmax是集合中的最小和最大数据,最终处理后的数据用Xscaled表示。
3.2步骤二:转化为基于用户行为的请求数量
在获得处理之后的Alibaba的工作负载之后,本发明通过在集群中模拟生成请求来达到与原数据集相同的效果。在收集到请求数量与云服务器的工作负载之间的关系之后,本发明通过深度学习算法来得到整个所需要进行实验的请求数量的数据。
在此之后本发明对用户行为进行分析,并且基于用户的行为将用户访问网站的不同位置进行了记录,在这里用户访问的网站的不同位置指的是访问基于微服务主页的网站及其子网站,例如网站主页、网站索引页、网站分类页、网站登录页等。通过对这些访问网站的不同请求进行模拟,本发明能更加贴近实际的模拟出现实生活中用户的行为。
3.3步骤三:工作负载与微服务链路分析
在生成请求并发送至请求处理器之后,本发明一方面将请求发送给目标集群,一方面收集来自云服务器集群的负载情况。这些负载情况主要包括了微服务自身的延迟、云服务器的资源消耗、微服务的请求延迟、请求成功率等信息。将这些信息传递给工作负载与链路分析器,通过微服务的关键路径分析,就可以得到当前状态下微服务的链路关系,结合获得的链路延迟数据,即可得到微服务的关键路径。
对于关键节点,本发明是通过基于决策树的分类方式进行判断并得到结果。通过训练针对于动态变化的链路关系得到一个精准针对是否为关键节点的决策树模型。该决策树有三种决策结果:属于关键节点、不属于关键节点与潜在的关键节点。三种结果中,每一条关键路径中至少包括一个关键节点,非关键节点和潜在关键节点可以不存在于关键路径中。
在确定关键节点的位置之后,本发明将通过训练好的深度学习模型来对云服务器集群来进行调度决策。在本发明中,强化学习使用的是基于深度学习神经网络的深度强化学习Deep Q-Learning。
Deep Q-Learning是强化学习的一种常用的方法,是基于Q-Learing的基础上,将需要多次迭代生成的Q-Table转化成了具有相对应的全部参数的神经网络,将其交付给深度学习进行训练。对于Q-Learing而言,本发明需要通过计算一系列action之后的Q-value来训练模型,计算方程如公式3所示:
Figure BDA0003572657190000221
上面的等式可以看出,处于状态s并执行行动a所产生的Q-value是奖励r(s,a)加上下一个状态s'可能产生的最高Q-value。这里的γ是discount,控制着未来的奖励的对现在的状态下的Q-value的影响。
本发明将上述公式3中的方程进行迭代,可以得到公式4,即最终收敛情况下的方程。
Q*(s,a)=∑s′P(s′∣s,a)(R(s,a,s′)+γmaxa′Q*(s′,a′)) (4)
对于神经网络而言,本发明训练的目标就是上述方程4中的存储过去Q-value的部分,即公式5。
γmaxa′Q*(s′,a′) (5)
3.4步骤四:集群调度策略
在经过关键路径与节点判断以及基于模型的调度决策之后,本发明使用三种算法来对云服务器集群中的微服务进行调度,三种调度策略如图2所示,这三种调度策略分别为横向扩展Vertical、纵向扩展Horizontal、管制Brownout。
横向扩展又称水平扩展。横向扩展通过在集群内的云服务器上增加或删除微服务的副本(replicates)来调整资源,以改善资源的使用和系统的可用性。云服务器集群能通过增加微服务的副本来达到降低云服务器集群的工作负载的目的。
纵向扩展:纵向扩展又称水平扩展。纵向扩展通过调节分配给微服务实例的CPU、内存或网络资源的数量来调整当前云服务器的处理服务能力。云服务器集群能通过增加集群内的单个云服务器或多个云服务器关于单个或多个微服务的资源来达到降低云服务器集群的工作负载的目的。
管制则是通过动态的开启或者关闭可选组件来达到降低微服务链路延迟的目的,管制由于会在一定程度上影响到微服务整体的完整性,一般只有在极端情况,例如云服务集群持续处于过在状态,管制机制才会触发并关闭可选组件,当云服务及集群从极端情况过渡到正常工作状态之后,被关闭的可选组件将被管制重新开启。
实施例3
一种存储介质,存储介质存储有能够实现上述任意一项基于微服务链路分析和强化学习的调度方法的程序文件。
实施例4
一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的基于微服务链路分析和强化学习的调度方法。
相比于现有技术,本发明采用了基于强化学习的微服务链路调度模型来针对于云服务器的最长延迟链路进行资源分配,相较于不经分析直接选取最长链路的方法而言,本发明能够解决可变性更大、微服务链路更复杂、链路延迟更敏感的云服务调度领域的问题。
本发明实验使用来自Alibaba与Google的云数据中心工作负载数据集。使用基于Locust的负载生成器与基于深度学习模型的云服务器集群调度器,并对比了目前调度领域常用的几种不同的调度算法,结果证明本发明在云服务器链路延迟分析与负载调度领域优于现有方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的系统实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于微服务链路分析和强化学习的调度方法,其特征在于,包括以下步骤:
基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据;
基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于DeepQ-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型;
使用深度学习模型对云服务器集群进行集群调度,其中调度方式包括:横向扩展、纵向扩展与管制。
2.根据权利要求1所述的基于微服务链路分析和强化学习的调度方法,其特征在于,所述基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据包括:
对工作负载进行预处理和数据清洗,并对实际的数据集中得到的原始数据进行处理获取请求数量;
在收集到请求数量与云服务器的工作负载之间的关系之后,通过深度学习算法来得到整个所需要进行实验的请求数量的数据;
在生成请求并发送至请求处理器之后,一方面将请求发送给目标集群,另一方面收集来自云服务器集群的负载情况;
将负载情况信息传递给工作负载与链路分析器,通过微服务的关键路径分析,得到当前状态下微服务的链路关系,结合获得的链路延迟数据,得到微服务的关键路径;
通过基于决策树的分类方式对关键节点进行判断并得到结果。
3.根据权利要求2所述的基于微服务链路分析和强化学习的调度方法,其特征在于,所述对工作负载进行预处理和数据清洗,并对实际的数据集中得到的原始数据进行处理获取请求数量包括:
首先删除包含空数据的列,按照时间序列对数据集进行分类,然后利用分组函数计算出具有相同时间戳的每个参数的平均值;
使用MinMaxScaler来对数据集进行归一化处理;MinMaxScaler的操作是基于min-max缩放法,具体的公式如下公式1与公式2所示;
Figure FDA0003572657180000021
Xscaled=Xstd*(Xmax-Xmin)+Xmin (2)
使用MinMaxScaler对每个特征进行变换,将每个特征缩放为0和1之间的值,X代表待处理数据的集合,Xmin和Xmax是集合中的最小和最大数据,最终处理后的数据用Xscaled表示。
4.根据权利要求2所述的基于微服务链路分析和强化学习的调度方法,其特征在于,在所述在收集到请求数量与云服务器的工作负载之间的关系之后,通过深度学习算法来得到整个所需要进行实验的请求数量的数据之后,所述方法还包括:
对用户行为进行分析,并且基于用户的行为将用户访问网站的不同位置进行了记录,通过对访问网站的不同请求进行模拟,模拟出现实生活中用户的行为。
5.根据权利要求2所述的基于微服务链路分析和强化学习的调度方法,其特征在于,所述系统情况包括:微服务自身的延迟、云服务器的资源消耗、微服务的请求延迟、请求成功率信息。
6.根据权利要求2所述的基于微服务链路分析和强化学习的调度方法,其特征在于,所述通过基于决策树的分类方式对关键节点进行判断并得到结果包括:
通过训练针对于动态变化的链路关系得到一个针对是否为关键节点的决策树模型;该决策树有三种决策结果:属于关键节点、不属于关键节点与潜在的关键节点;三种结果中,每一条关键路径中至少包括一个关键节点,非关键节点和潜在关键节点不存在于关键路径中。
7.根据权利要求1所述的基于微服务链路分析和强化学习的调度方法,其特征在于,所述基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于DeepQ-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型包括:
在确定关键节点的位置之后,将通过训练好的深度学习模型来对云服务器集群来进行调度决策;强化学习使用的是基于深度学习神经网络的深度强化学习Deep Q-Learning。
8.根据权利要求7所述的基于微服务链路分析和强化学习的调度方法,其特征在于,通过计算一系列action之后的Q-value来训练模型,计算方程如公式3所示:
Figure FDA0003572657180000031
其中处于状态s并执行行动a所产生的Q-value是奖励r(s,a)加上下一个状态s'产生的最高Q-value;γ是折扣率,其控制着未来的奖励的对现在的状态下的Q-value的影响;
将上述公式3中的方程进行迭代,得到公式4,为最终收敛情况下的方程:
Q*(s,a)=∑s′P(s′∣s,a)(R(s,a,s′)+γmaxa′Q*(s′,a′)) (4)
得到方程4中的存储过去Q-value的部分,为公式5:
γmaxa′Q*(s′,a′) (5)。
9.根据权利要求1所述的基于微服务链路分析和强化学习的调度方法,其特征在于,所述横向扩展通过在集群内的云服务器上增加或删除微服务的副本来调整资源;云服务器集群通过增加微服务的副本降低云服务器集群的工作负载;
所述纵向扩展通过调节分配给微服务的CPU、内存或网络资源的数量来调整当前云服务器的处理服务能力;云服务器集群通过增加集群内的单个云服务器或多个云服务器关于单个或多个微服务的资源降低云服务器集群的工作负载;
所述管制通过动态的开启或者关闭可选组件来降低微服务链路延迟,当云服务及集群从极端情况过渡到正常工作状态之后,被关闭的可选组件将被管制重新开启。
10.一种基于微服务链路分析和强化学习的调度装置,其特征在于,包括:
负载生成器,用于基于深度学习模型的工作负载与链路分析器对云服务器微服务的链路进行分析与决策,选取最长延迟的关键路径与关键节点,获取云服务器负载数据;
工作负载与链路分析器,用于基于Deep Q-Learning的强化学习算法,对云服务器负载数据进行训练,利用基于Deep Q-Learning的强化学习算法训练出适应于不同负载状态下的深度学习模型;
集群调度器,用于使用深度学习模型对云服务器集群进行集群调度,其中调度方式包括:横向扩展、纵向扩展与管制。
CN202210323609.7A 2022-03-30 2022-03-30 基于微服务链路分析和强化学习的调度方法及装置 Pending CN114780233A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210323609.7A CN114780233A (zh) 2022-03-30 2022-03-30 基于微服务链路分析和强化学习的调度方法及装置
PCT/CN2022/138189 WO2023185090A1 (zh) 2022-03-30 2022-12-09 基于微服务链路分析和强化学习的调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210323609.7A CN114780233A (zh) 2022-03-30 2022-03-30 基于微服务链路分析和强化学习的调度方法及装置

Publications (1)

Publication Number Publication Date
CN114780233A true CN114780233A (zh) 2022-07-22

Family

ID=82426820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210323609.7A Pending CN114780233A (zh) 2022-03-30 2022-03-30 基于微服务链路分析和强化学习的调度方法及装置

Country Status (2)

Country Link
CN (1) CN114780233A (zh)
WO (1) WO2023185090A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116827685A (zh) * 2023-08-28 2023-09-29 成都乐超人科技有限公司 基于深度强化学习的微服务系统动态防御策略方法
WO2023185090A1 (zh) * 2022-03-30 2023-10-05 深圳先进技术研究院 基于微服务链路分析和强化学习的调度方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117519948B (zh) * 2023-12-11 2024-04-26 广东筠诚建筑科技有限公司 基于云平台实现建筑施工下的计算资源调整方法及系统
CN117640413B (zh) * 2024-01-26 2024-04-26 国网湖北省电力有限公司信息通信公司 雾计算中基于强化学习的微服务和数据库联合部署方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11488064B2 (en) * 2020-03-30 2022-11-01 International Business Machines Corporation Machine learning model for micro-service compliance requirements
CN113553150A (zh) * 2021-07-02 2021-10-26 深圳先进技术研究院 一种云服务器集群负载预测方法、系统、终端以及存储介质
CN113553149A (zh) * 2021-07-02 2021-10-26 深圳先进技术研究院 云服务器集群负载调度方法、系统、终端以及存储介质
CN114780233A (zh) * 2022-03-30 2022-07-22 深圳先进技术研究院 基于微服务链路分析和强化学习的调度方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023185090A1 (zh) * 2022-03-30 2023-10-05 深圳先进技术研究院 基于微服务链路分析和强化学习的调度方法及装置
CN116827685A (zh) * 2023-08-28 2023-09-29 成都乐超人科技有限公司 基于深度强化学习的微服务系统动态防御策略方法
CN116827685B (zh) * 2023-08-28 2023-11-14 成都乐超人科技有限公司 基于深度强化学习的微服务系统动态防御策略方法

Also Published As

Publication number Publication date
WO2023185090A1 (zh) 2023-10-05

Similar Documents

Publication Publication Date Title
Herbst et al. Metrics and benchmarks for self-aware computing systems
CN114780233A (zh) 基于微服务链路分析和强化学习的调度方法及装置
CN105283851B (zh) 用于选择跟踪目标的成本分析
CN105283848B (zh) 用分布式目标来进行应用跟踪
CN105283866B (zh) 包括使用相似频率的优化分析的应用跟踪方法和系统
JP5313990B2 (ja) 応答時間に基づいてサービスリソース消費を推定すること
US9111232B2 (en) Portable workload performance prediction for the cloud
US9229838B2 (en) Modeling and evaluating application performance in a new environment
WO2008134143A1 (en) Resource model training
Desnoyers et al. Modellus: Automated modeling of complex internet data center applications
CN112685170A (zh) 备份策略的动态优化
Frömmgen et al. Fossa: Learning ECA rules for adaptive distributed systems
Cheng et al. Efficient performance prediction for apache spark
US20100153928A1 (en) Developing and Maintaining High Performance Network Services
Kumar et al. Hold'em or fold'em? aggregation queries under performance variations
Vondra et al. Cloud autoscaling simulation based on queueing network model
CN115086189A (zh) 一种面向无服务器计算的服务资源弹性伸缩方法和系统
Lattuada et al. Performance prediction of deep learning applications training in GPU as a service systems
CN114912041A (zh) 信息处理方法、电子设备和计算机程序产品
Bodik Automating datacenter operations using machine learning
Han Investigations into elasticity in cloud computing
Sagaama et al. Automatic parameter tuning for big data pipelines with deep reinforcement learning
He et al. An SLA-driven cache optimization approach for multi-tenant application on PaaS
Delimitrou et al. Cross-examination of datacenter workload modeling techniques
von Kistowski et al. Predicting server power consumption from standard rating results

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination