CN115037749B - 一种大规模微服务智能多资源协同调度方法及系统 - Google Patents

一种大规模微服务智能多资源协同调度方法及系统 Download PDF

Info

Publication number
CN115037749B
CN115037749B CN202210644605.9A CN202210644605A CN115037749B CN 115037749 B CN115037749 B CN 115037749B CN 202210644605 A CN202210644605 A CN 202210644605A CN 115037749 B CN115037749 B CN 115037749B
Authority
CN
China
Prior art keywords
micro
service
resource
representing
network
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.)
Active
Application number
CN202210644605.9A
Other languages
English (en)
Other versions
CN115037749A (zh
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.)
Qilu University of Technology
Shandong Computer Science Center National Super Computing Center in Jinan
Original Assignee
Qilu University of Technology
Shandong Computer Science Center National Super Computing Center in Jinan
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 Qilu University of Technology, Shandong Computer Science Center National Super Computing Center in Jinan filed Critical Qilu University of Technology
Priority to CN202210644605.9A priority Critical patent/CN115037749B/zh
Publication of CN115037749A publication Critical patent/CN115037749A/zh
Application granted granted Critical
Publication of CN115037749B publication Critical patent/CN115037749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种大规模微服务智能多资源协同调度方法及系统,包括:采集微服务资源使用信息与微服务运行时信息并进行数据预处理;对资源协同调度进行决策的性能感知的多层联动;对微服务进行资源调度的资源分配。通过自动的信息采集可以实时地感知微服务的资源使用和延迟性能等情况;在此基础上,利用多智能体深度强化学习方法可以捕获各个微服务之间的依赖关系,并根据工作负载的动态变化协同地对每个微服务所使用的多种资源进行弹性细粒度的调整。本发明可以在尽可能保障大规模微服务应用的尾延迟SLO的同时,降低微服务每个资源维度的资源冗余,进而提高整体资源利用率。

Description

一种大规模微服务智能多资源协同调度方法及系统
技术领域
本发明涉及一种性能感知的大规模微服务智能多资源协同调度方法及系统,属于资源协同调度技术领域。
背景技术
随着互联网技术的不断发展,传统软件逐渐向云应用转型。与此同时,云应用也在不断的进行技术革新,近年来,云应用已经从紧密耦合的单体架构向由大规模微服务构成的微服务架构演变。微服务架构的模块化以及灵活开发模式被越来越多的开发者接受,但大规模微服务涉及的多维度资源调度以及各个微服务之间复杂的依赖关系给资源管理和服务质量保障带来了新的挑战。云应用通常是交互式、延迟敏感型的服务,它们具有严格的尾延迟服务等级目标(Service Level Objective,SLO)要求,为了尽可能的保障尾延迟SLO,通常采用超容预留(overprovisioning)的资源分配方式,为微服务所需的每种资源都进行满额的静态配置,极大地降低了资源利用率。
现有研究工作大多只关注单一维度的资源调度,但微服务通常涉及CPU、内存、缓存、IO及网络带宽等多个维度的资源,单一维度的资源分配方法无法满足微服务对资源管理的要求。虽然近来基于机器学习的方法在解决大规模系统的资源管理问题方面非常有效,然而这些方法无法直接适用于大规模微服务资源的协同调度,因为它们仅针对单一服务独立设计资源分配策略,并没有考虑各个微服务之间的依赖关系对性能的影响。
发明内容
针对现有技术的不足,本发明提供了一种性能感知的大规模微服务智能多资源协同调度方法;本发明还提供了一种性能感知的大规模微服务智能多资源协同调度系统。
本发明的目的是根据工作负载的动态变化,在尽可能保障大规模微服务应用尾延迟SLO的同时,为每个微服务各维度资源进行弹性细粒度地分配。通过实时的信息采集,对大规模微服务应用的资源使用、运行时信息进行实时地感知;在此基础上,利用多智能体深度多资源决策模型捕获各个微服务之间的依赖关系,并为每个微服务制定多维度协同的资源调度策略,进而在保障应用尾延迟SLO的同时,提高整体资源利用率。本发明通过引入迁移学习,来加快模型的收敛速度,降低训练成本。
本发明采用基于多智能体深度强化学习的方法来对大规模微服务进行多层、多维度资源的协同调度。首先,信息采集模块自动采集每个微服务每种资源的使用情况及微服务的运行时信息,采集到的信息进行数据预处理后,发送给基于多智能体深度强化学习的多层联动的多资源决策模块;然后,资源决策模块为每个微服务产生资源调度策略;最后通过资源分配模块对微服务进行资源分配。通过以上三个模块,本发明可以在尽可能保障尾延迟SLO的同时,根据工作负载的动态变化为每个微服务进行弹性细粒度的资源分配,从而提高整体资源利用率。
术语解释:
1、微服务(Microservices):微服务是一种软件架构风格,是以单一用途的小型功能区块为基础,通过模块化的方式组合成为大型应用程序,并且各区块使用与编程语言无关的API进行通信。如图1所示,采用微服务架构的应用程序以业务功能或流程进行划分,将每个业务功能都实现成一个可以独立执行的个体,然后通过相同的协议将微服务组合,完成应用程序的微服务化。采用微服务架构的应用程序具有模块化、灵活开发以及快速迭代的特点。
2、微服务之间的依赖关系(Dependencies between microservices):采用微服务架构的应用根据不同的业务功能被划分为成千上万个松散耦合的微服务,它们之间通过特定的协议通信,互相联系的微服务之间具有依赖关系。微服务之间复杂的依赖关系会加剧排队效应,并引入级联的尾延迟SLO违规。例如,某个微服务因资源分配不足而造成延迟增加时,可能会导致与其具有依赖关系的微服务也会产生请求积压,进而导致端到端的延迟增加,甚至造成尾延迟SLO违规。
3、Control groups(Cgroups):是Linux内核用来限制单个或多个进程所使用资源的机制。可以细粒度的查看进程组的CPU、内存、IO以及网络数据包,并且可以对进程组的CPU、内存和IO进行限制。通过Cgroups,我们可以方便快捷的获取进程组的资源使用情况,并且对进程组的资源使用进行细粒度的控制。
4、Intel RDT(Intel Resource Director Technology):主要用来解决缓存级别(cache level)的资源隔离问题。一共包含五个功能模块,其中缓存检测技术模块(CacheMonitoring Technology,CMT)和缓存分配技术模块(Cache Allocation Technology,CAT)允许用户绕开内核,直接对最后一级缓存(Last Level Cache,LLC)进行调度。
5、TC(Traffic Control):被用于Linux系统的网络流量限制。它通过建立处理数据包的队列,并定义队列中数据包的发送方式的方法来进行流量控制。TC的流量控制方式包括SHAPING、SCHEDULING、POLICING、DROPPING四种。
6、多智能体深度强化学习(Multi-Agent Deep Reinforcement Learning):深度强化学习结合了深度学习的感知能力与强化学习的决策能力,逐渐被用来解决现实场景中的各类复杂问题。深度强化学习使智能体在试错过程中不断的优化自己的策略,最终智能体可以根据当前状态直接产生一个使长期收益最大化的决策。多智能体深度强化学习由智能体集合组成,智能体之间可以存在多种关系,如竞争关系或合作关系等。每个智能体都通过奖励激励来最大化未来收益,如果最大化收益与其他智能体的收益对立,那么两个智能体之间就是竞争关系;如果与其他智能体相互协调共同最大化各自收益,那么智能体之间就是合作关系。多智能体深度强化学习凭借其技术优势被广泛应用于资源分配、自动驾驶、编队控制等方面。
7、Actor网络:如图6所示,基于策略梯度,策略被参数化为神经网络,负责生成动作并和环境交互。Actor网络输入智能体的状态,输出动作。Actor网络以深度神经网络为基础对策略进行函数拟合,通常包含输入层、隐藏层和输出层;对于连续动作深度神经网络输出层可以用tanh或sigmoid激活,对于离散动作以softmax作为输出层达到概率输出的效果。
8、Critic网络:如图7所示,基于价值函数,负责评估Actor的输出动作,并生成TD_error信号同时指导actor网络和Critic网络的更新。Critic网络的输入是智能体的状态和动作,输出Q值作为对Actor输出动作的评价。Critic网络以深度神经网络为基础,包含输入层、隐藏层以及只有一个神经元的输出层。
本发明的技术方案为:
一种性能感知的大规模微服务智能多资源协同调度方法,包括:
采集微服务资源使用信息与微服务运行时信息并进行数据预处理;
对资源协同调度进行决策的性能感知的多层联动;
对微服务进行资源调度的资源分配。
根据本发明优选的,采集微服务资源使用信息与微服务运行时信息,包括:
通过基于容器技术的多维度资源,使用采集构件采集微服务资源使用信息,包括微服务的CPU使用率、内存使用率、缓存使用、IO速率、网络带宽;
通过基于远程过程调用(Remote Procedure Call,RPC)级别的延迟监控和计算构件采集每个微服务运行时信息即微服务的端到端延迟和负载变化,并通过计算得到微服务应用的端到端延迟。
根据本发明优选的,微服务运行时信息的采集方法为:首先,在数据库中得到单体微服务的端到端延迟和负载变化;然后,根据请求的不同,将获取的单体微服务的端到端延迟和负载变化进行划分,通过同一请求最晚离开微服务应用的时间减去最早进入微服务应用的时间,得到微服务应用的端到端延迟;最后,将微服务的运行时信息与对应微服务的资源使用信息按相同时间戳进行聚合,作为进行性能感知的多层联动的多资源分配的基础。
根据本发明优选的,数据预处理,包括:
采用了Z-Score标准化来对采集的数据包括微服务资源使用信息与微服务运行时信息进行标准化处理。
进一步优选的,每次采集数据后,都进行数据预处理,求取全部数据均值与标准差,通过递推公式来计算均值与标准差;定义第n个时间间隔的平均值为En,方差为Fn,均值的递推公式为其中,E0=x0;En-1是指第n-1个时间间隔的平均值,xn表示第n个时间间隔个体x的观测值;
标准差由方差开平方获得,方差的递推公式为Fn=Fn-1+(xn-En-1)*(xn-En),其中,F0=0,Fn-1是指第n-1个时间间隔的方差。
根据本发明优选的,对资源协同调度进行决策的性能感知的多层联动,包括:
第一,定义问题,如下:
假设构成微服务应用的m个微服务由集合B={1,2,...,B}表示;对于任意的微服务b,资源使用信息用集合Rb={cb,mb,cab,ob,neb}表示,cb表示微服务b的CPU使用率,mb表示微服务b的内存使用率,Cab表示微服务b的缓存使用,ob表示微服务b的IO速率,neb表示微服务b的网络带宽;任意微服务b的微服务运行时信息包括单体微服务的端到端延迟Lab、负载变化WCb及请求到达微服务时间RAb;假设微服务b与微服务b+1之间由特定的协议进行通信,两者之间则具有依赖关系,记作D(b,b+1),对具有依赖关系的微服务b制定一个多层联动的多种资源协同调度策略πb,以在尽可能保障SLO的同时,最小化资源使用;
多层联动的多资源协同调度问题看作是一个多目标优化问题,目标函数是最小化整体应用的多个维度的资源使用,这需要为每个微服务每一维度的资源制定一个多层联动的协同的分配策略,问题约束有以下三点:首先,每个节点上微服务的每种资源累积使用量不能超过可用容量;其次,微服务之间如果存在依赖关系,则对两者进行微服务层之间的联合资源分配;第三,在当前资源协同调度策略下,微服务应用的端到端尾延迟应该小于SLO。
第二,多资源决策模型构建,如下:
基于深度强化学习技术,对使用马尔可夫决策过程对定义的问题进行建模,包括:
状态空间是指:任意的微服务b在时间t都有状态具体包括:CPU的使用份额cb,t、内存的使用份额mb,t、缓存使用份额cab,t、IO的读写速率ob,t、网络带宽neb,t、微服务应用的端到端延迟latencyt、微服务b的请求负载变化WCb,t
动作空间是指:任意的微服务b的独立动作空间为表示任意的微服务使用的资源配额;G的联合动作空间为表示微服务i的动作空间,表示微服务B的动作空间;任意的微服务b的独立动作包括CPU的使用份额、内存的使用份额、缓存使用份额、IO速率以及网络带宽;
奖励函数是指:在t时刻,任意的微服务b针对状态sb,t产生了动作Ab,t,为了评价任意的微服务b产生的动作Ab,t,其奖励函数reward如下所示:
其中,Res_ui,j表示微服务i第j种资源的使用份额,Res_limi,j表示微服务i第j种资源的份额限制;latency表示当前微服务应用的端到端延迟,SLO为服务等级目标,θ1、θ2表示超参,m是微服务个数,r是微服务i的使用资源数量;
状态转移概率是指:选择基于确定性策略的算法,该算法对于同一状态st,产生的动作at是唯一的,表示为μθ(s)=a;
强化学习采用Actor-Critic框架,包括动作策略网络即Actor网络和Critic网络;Actor网络通过对采集信息进行性能感知用来产生多层联动的多资源协同调度动作,Critic网络用来评价Actor网络产生的动作;
通过多智能体深度确定性策略梯度算法即MADDPG算法来对资源分配进行决策;
MADDPG算法中,每个微服务b在t时刻不仅能获得自己所观察到的局部状态sb,t,还获得其他微服务的状态以及联合动作
第三,多资源决策模型训练,如下:
MADDPG算法采用集中式训练、分布式执行的方法;
训练时,Critic网络通过全局状态和动作来指导Actor网络学习分配策略;执行时,Actor网络只需要知道自身的局部状态通过对资源使用情况和运行时信息的性能感知就可以产生动作。
第四,通过训练后的多资源决策模型对待测微服务进行资源协同调度,获得资源分配策略。
进一步优选的,Actor网络基于Critic网络的评价即Q值来进行参数更新,更新的目标是最大化Q值;使用θ表示微服务的策略参数,μ表示微服务策略,状态使用s表示,有s=[x1,x2,...,xn],其中,xi表示第i个微服务的状态;第i个微服务在策略μ下,结合状态s以及联合动作[a1,a2,...,an]得到状态价值函数Actor网络策略梯度更新公式为:
θi表示微服务i的策略参数,μi表示微服务i的策略,ai表示微服务i的动作,J表示代价函数。
对于每一个微服务的Actor网络,都有一个获取全局信息的Critic网络来评价动作at在状态st下的未来总收益。
进一步优选的,使用最小化损失函数来更新Critic网络,使Critic网络输出的Q值更加拟合动作at的长期收益;Critic网络策略梯度更新公式为:
θi表示微服务i的策略参数,ai表示微服务i的动作,rewi表示动作at在状态st下获得的奖励,L表示损失函数,γ表示折扣因子,μ′表示目标网络的策略,a′k表示目标网络下微服务k产生的动作。
根据本发明优选的,通过训练后的多资源决策模型对待测微服务进行资源协同调度,获得资源分配策略,包括:
步骤1:微服务应用的工作负载发生变化;
步骤2:多资源决策模型进行初始化,每个智能体对应一个微服务,并为该微服务制定资源分配策略;
步骤3:以时隙t为间隔,迭代执行步骤4至步骤10;
步骤4:并行采集每个微服务b资源使用信息与微服务运行时信息,作为每个智能体所需要的自身状态sb,t
步骤5:对采集到的信息按照相同时间戳进行整合;
步骤6:信息整合后,对所有信息计算均值和标准差,进行Z-Score标准化,使得所有数据都在同一数量级;
步骤7:每个智能体获取自身状态sb,t,作为训练后的多资源决策模型的输入;
步骤8:针对当前观测状态,训练后的多资源决策模型为微服务制定多资源的协同分配策略,目标是在尽可能保障微服务应用尾延迟SLO的同时,最大化整体资源利用率;
步骤9:训练后的多资源决策模型输出的动作策略组成联合动作
步骤10:将动作Ai与微服务i匹配,并发为每个微服务进行资源配置。
根据本发明优选的,多资源决策模型训练中,基于模型不同映射关系进行迁移学习,包括:
定义微服务场景s为源域,微服务场景t为目标域,目标域与源域有着相同的资源配置R,将在微服务场景s下训练收敛的多资源决策模型迁移到微服务场景t下进行再训练;
当微服务场景s和微服务场景t拥有相同数量的微服务个数n时,将两个场景下的微服务一一对应,使用在微服务场景s下训练收敛的多资源决策模型对应微服务场景t下的每一个微服务,进行一对一模式的迁移学习;
当微服务场景s和微服务场景t拥有不同数量的微服务个数时,在微服务场景s下只训练一个多资源决策模型,将此多资源决策模型与微服务场景t下的所有微服务对应,进行一对多模式的迁移学习。
根据本发明优选的,对微服务进行资源调度的资源分配,包括:
通过Cgroup的cpu.cfs_quota_us与memory.limit_in_bytes文件,修改微服务的CPU和内存使用限制,通过blkio.throttle.read_bps_device与blkio.throttle.write_bps_device限制IO速率;网络带宽由TC工具进行限制;LLC通过Intel CAT技术进行限制。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现性能感知的大规模微服务智能多资源协同调度方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现性能感知的大规模微服务智能多资源协同调度方法的步骤。
一种性能感知的大规模微服务智能多资源协同调度系统,包括:
信息采集模块,被配置为:采集微服务资源使用信息与微服务运行时信息并进行数据预处理;
基于多智能体深度强化学习的多层联动的多资源决策模块,被配置为:对资源协同调度进行决策的性能感知的多层联动;
资源分配模块,被配置为:对微服务进行资源调度的资源分配。
本发明的有益效果为:
本发明提供了一种性能感知的大规模微服务智能多资源协同调度方法及系统,通过自动的信息采集可以实时地感知微服务的资源使用和延迟性能等情况;在此基础上,利用多智能体深度强化学习方法可以捕获各个微服务之间的依赖关系,并根据工作负载的动态变化协同地对每个微服务所使用的多种资源进行弹性细粒度的调整。本发明可以在尽可能保障大规模微服务应用的尾延迟SLO的同时,降低微服务每个资源维度的资源冗余,进而提高整体资源利用率。
附图说明
图1为微服务架构示意图;
图2为性能感知的多层联动的多资源决策模型的示意图;
图3为性能感知的多层联动的多资源决策模型训练流程示意图;
图4为一种性能感知的大规模微服务智能多资源协同调度方法整体流程示意图;
图5为一种性能感知的大规模微服务智能多资源协同调度系统的架构示意图;
图6为Actor网络的网络架构示意图;
图7为Critic网络的网络架构示意图;
图8为微服务b的CPU实际使用与分配份额对比示意图。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种性能感知的大规模微服务智能多资源协同调度方法,包括:
采集微服务资源使用信息与微服务运行时信息并进行数据预处理;
对资源协同调度进行决策的性能感知的多层联动;
对微服务进行资源调度的资源分配。
实施例2
根据实施例1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其区别在于:
采集微服务资源使用信息与微服务运行时信息,包括:
为尽可能保障微服务应用的尾延迟SLO,需要对应用中的每个微服务资源使用信息及微服务运行时信息进行实时采集,作为多资源决策模型的性能感知基础,使用集合R={C,M,Ca,IO,Net}表示每个微服务的资源使用情况。
微服务架构如图1所示,对每个微服务的工作负载强度,多维度资源使用情况以及微服务应用端到端的性能进行实时感知。本发明以时隙t为间隔,实时采集大规模微服务应用中每个微服务的每种资源使用情况和运行时信息。
通过基于容器技术的多维度资源,使用采集构件采集微服务资源使用信息,包括微服务的CPU使用率、内存使用率、缓存使用、IO速率、网络带宽;
通过基于远程过程调用级别的延迟监控和计算构件采集每个微服务运行时信息即微服务的端到端延迟和负载变化,并通过计算得到微服务应用的端到端延迟。
将微服务应用中每一个微服务封装进一个对应的容器,进行独立的维护和部署,每个容器都负责一个特定的业务功能。本发明基于容器技术对微服务资源使用进行实时采集,通过读取容器每种资源使用的相关文件并进行聚合即可获得微服务的多维度资源使用信息。具体资源信息的采集方式如下所述:
微服务的CPU使用率、内存使用率、IO速率的采集方法为:通过Cgroup中的cpuacct.usage文件、memory.usage_in_bytes文件及blkio.throttle.io_service_bytes文件分别获取每个微服务的CPU使用率、内存使用率及IO速率。具体资源与对应获取文件如表1所示。
表1
采集后的信息与上一时间间隔的采集信息相减,得到间隔t内的资源使用情况。第一个时间步只记录信息,不做相应计算。
缓存使用的采集方法为:使用Intel RDT技术对缓存信息进行采集,通过intel-cmt-cat软件包中的pqos实用程序获得LLC的使用情况即缓存使用。
网络带宽的采集方法为:首先,找到每个微服务的pid,然后,通过文件/proc/(pid)/net/dev,来获取上传与下载的网络流量数据,最后,将采集后的上传与下载的网络流量数据与上一时间间隔的上传与下载的网络流量数据相减,得到间隔t内的上传与下载的网络流量数据即网络带宽。第一个时间步只记录信息,不做相应计算。
本发明通过微服务应用的端到端延迟来判断当前策略是否最优,并通过对负载变化等进行性能感知来为下一步的资源分配做决策,这两种微服务的运行时信息将作为多资源决策模型的状态输入。目前,存在多种成熟的RPC级别的全链路监控系统可以获取微服务运行时信息,如Zipkin、Pinpoin和Jaeger等;选取Jaeger+Cassandra的配置来对微服务应用进行全链路追踪,单体微服务的延迟以及负载变化只需要在数据库中进行读取即可。
微服务运行时信息的采集方法为:首先,在数据库中得到单体微服务的端到端延迟和负载变化;然后,根据请求的不同,将获取的单体微服务的端到端延迟和负载变化进行划分,通过同一请求最晚离开微服务应用的时间减去最早进入微服务应用的时间,得到微服务应用的端到端延迟;最后,对于任意微服务,读取相同时间戳下该微服务的每种资源使用情况以及微服务运行时信息,以单体微服务为单位将聚合后的信息存入元组,作为进行性能感知的多层联动的多资源分配的基础。
数据预处理,包括:
采集的所有信息会以相同时间戳进行聚合,由于数据之间的差异较大,很多数据并不在同一数量级,如果直接将数据输入到多资源决策模型,会增加多资源决策模型的拟合难度,甚至影响多资源决策模型性能感知的精度。所以,采用了Z-Score标准化来对采集的数据包括微服务资源使用信息与微服务运行时信息进行标准化处理。以消除数据间的差异。Z-Score标准化的公式为:其中,x为个体的观测值,μ表示总体数据的均值,σ表示总体数据的标准差。
每次采集数据后,都进行数据预处理,求取全部数据均值与标准差,随着数据量的不断增大,求均值与标准差的时间也会不断增加。为了避免计算时间过长带来的影响,通过递推公式来计算均值与标准差;定义第n个时间间隔的平均值为En,方差为Fn,均值的递推公式为其中,E0=x0;En-1是指第n-1个时间间隔的平均值,xn表示第n个时间间隔个体x的观测值;
标准差由方差开平方获得,方差的递推公式为Fn=Fn-1+(xn-En-1)*(xn-En),其中,F0=0,Fn-1是指第n-1个时间间隔的方差。
经过Z-Score标准化后的数据都处于同一数量级,可以统一使用计算出的Z-Score值衡量,增加了数据之间的可比性。
实施例3
根据实施例2所述的一种性能感知的大规模微服务智能多资源协同调度方法,其区别在于:
如图4所示,对资源协同调度进行决策的性能感知的多层联动,包括:
第一,定义问题,如下:
假设构成微服务应用的m个微服务由集合表示;对于任意的微服务b,资源使用信息用集合Rb={cb,mb,cab,ob,neb}表示,cb表示微服务b的CPU使用率,mb表示微服务b的内存使用率,Cab表示微服务b的缓存使用,ob表示微服务b的IO速率,neb表示微服务b的网络带宽;任意微服务b的微服务运行时信息包括单体微服务的端到端延迟Lab、负载变化WCb及请求到达微服务时间RAb;假设微服务b与微服务b+1之间由特定的协议进行通信,两者之间则具有依赖关系,记作D(b,b+1),对具有依赖关系的微服务b制定一个多层联动的多种资源协同调度策略πb,以在尽可能保障SLO的同时,最小化资源使用;
多层联动的多资源协同调度问题看作是一个多目标优化问题,目标函数是最小化整体应用的多个维度的资源使用,这需要为每个微服务每一维度的资源制定一个多层联动的协同的分配策略,问题约束有以下三点:首先,每个节点上微服务的每种资源累积使用量不能超过可用容量;其次,微服务之间如果存在依赖关系,则对两者进行微服务层之间的联合资源分配;第三,在当前资源协同调度策略下,微服务应用的端到端尾延迟应该小于SLO。
将上述描述公式化如下:
·minimize
·minimize∑0<i≤mnei
·minimize∑0<i≤moi
st.J(i,j)if D(i,j)
ci是指第i个微服务的CPU配额,mi是指第i个微服务的内存配额,cai是指第i个微服务的缓存配额,nei是指第i个微服务的IO速率,oi是指第i个微服务的网络带宽;Ci表示第i个微服务的CPU总容量,Mi表示第i个微服务内存总容量,Oi表示第i个微服务的IO速率上限,CAi表示第i个微服务的缓存总容量,NEi表示第i个微服务的网络带宽上限。
D(i,j)是指表示微服务i与j存在依赖关系;J(i,j)是指表示需要对微服务i与j的资源进行整体联动分配;是指微服务分配CPU配额集合,是指微服务分配内存配额集合,是指微服务分配缓存配额集合,是指微服务分配IO配额集合,是指微服务分配网络带宽配额集合,
第二,多资源决策模型构建,如下:
本发明基于马尔可夫决策过程对多资源调度问题建模,基于多智能体深度强化学习技术来捕获微服务应用之间的依赖关系,以此为基础,通过对采集信息进行性能感知产生多资源协同调度的资源调度策略,解决依赖关系对微服务应用的资源管理以及端到端延迟的影响。
基于深度强化学习技术,对使用马尔可夫决策过程对定义的问题进行建模,其中,状态空间动作空间奖励函数状态转移概率包括:
状态空间是指:任意的微服务b在时间t都有状态具体包括:CPU的使用份额(CPU使用率)cb,t、内存的使用份额(内存使用率)mb,t、缓存使用份额(缓存使用)cab,t、IO的读写速率(IO速率)ob,t、网络带宽neb,t、微服务应用的端到端延迟latencyt、微服务b的请求负载变化WCb,t;状态空间包括了智能体微服务b的多维度资源使用情况以及运行时信息,模型通过这两部分信息可以实时感知多维度的资源使用和延迟性能等情况。
动作空间是指:任意的微服务b在时隙t的独立动作空间为表示任意的微服务使用的资源配额;G的联合动作空间为表示微服务i的动作空间,表示微服务B的动作空间;任意的微服务b的独立动作包括CPU的使用份额、内存的使用份额、缓存使用份额、IO速率以及网络带宽;动作同时包括多个维度的资源调度决策,体现了多维度资源的协同调度。
奖励函数是指:在t时刻,任意的微服务b针对状态sb,t产生了动作Ab,t,为了评价任意的微服务b产生的动作Ab,t,其奖励函数reward如下所示:
其中,Res_ui,j表示微服务i第j种资源的使用份额,Res_limi,j表示微服务i第j种资源的份额限制;latency表示当前微服务应用的端到端延迟,SLO为服务等级目标,θ1、θ2表示超参,m是微服务个数,r是微服务i的使用资源数量;
由于所有微服务共享一个奖励函数,每个微服务都要最大化期望奖励其中,γ表示折扣因子,取值范围在[0,1],表示在t+i时刻微服务b所采取的动作所获得的收益,所以,在应用的端到端尾延迟满足SLO的情况下,将微服务b的奖励设计为应用的尾延迟latency与SLO的比值加上θ1倍的所有微服务的各资源利用率。当所有微服务的资源配置使应用尾延迟满足SLO且资源利用率最大时,微服务b才能获得最大收益。此时微服务b产生的资源调度策略是整体收益最大化并且是多层联动的,从而解决了微服务之间的依赖关系对资源管理以及端到端尾延迟的影响;当应用的端到端尾延迟不满足SLO时,对微服务b进行惩罚,惩罚是θ2倍的尾延迟latency与SLO的比值,当尾延迟latency越大时,微服务b受到的惩罚就越大,从而缓解SLO违规。
状态转移概率是指:由于资源分配的动作空间是连续的,所以选择基于确定性策略的算法,该算法对于同一状态st,产生的动作at是唯一的,表示为μθ(s)=a;
如图2所示,强化学习采用Actor-Critic框架,包括动作策略网络即Actor网络和Critic网络;Actor网络通过对采集信息进行性能感知用来产生多层联动的多资源协同调度动作,Critic网络用来评价Actor网络产生的动作;Critic网络通过获得的全局信息,来对当前Actor网络的输出动作进行评价,因此Actor网络输出的动作策略是基于最大化整体的未来收益而制定,解决了微服务间的依赖关系的影响。
通过多智能体深度确定性策略梯度(Multi-Agent Deep Deterministic PolicyGradient,MADDPG)算法即MADDPG算法来对资源分配进行决策;
MADDPG算法在训练时,Actor网络根据预处理后的时隙t的采集信息作为状态并输出动作,Critic网络基于时隙t的全局状态和动作输出Q值,作为对Actor网络动作的评价;
使用Actor-Critic框架对时隙t+1时刻的状态输出动作,并通过Actor-Critic框架对Actor-Critic框架的输出动作进行评价并输出Q′,通过Q值更新Actor网络参数,基于Q′使用最小化损失函数来更新Critic网络;
决策时,只使用Actor网络与环境进行交互,将每个微服务的自身信息经过数据预处理后作为状态输入Actor网络,每个Actor网络通过深度神经网络对状态进行性能感知并产生动作,将所有微服务的动作聚合,得到需要执行的联合动作。执行联合动作结束后,继续完成下一个时间间隙的资源分配决策。
不同于深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法,MADDPG算法中,每个微服务b在t时刻不仅能获得自己所观察到的局部状态sb,t,还获得其他微服务的状态以及联合动作
第三,多资源决策模型训练,如下:
MADDPG算法采用集中式训练、分布式执行的方法;
训练时,Critic网络通过全局状态和动作来指导Actor网络学习分配策略;执行时,Actor网络只需要知道自身的局部状态通过对资源使用情况和运行时信息的性能感知就可以产生动作。
Actor网络基于Critic网络的评价即Q值来进行参数更新,更新的目标是最大化Q值;使用θ表示微服务的策略参数,μ表示微服务策略,状态使用s表示,有s=[x1,x2,...,xn],其中,xi表示第i个微服务的状态;第i个微服务在策略μ下,结合状态s以及联合动作[a1,a2,...,an]得到状态价值函数Actor网络策略梯度更新公式为:
θi表示微服务i的策略参数,μi表示微服务i的策略,状态使用s表示,ai表示微服务i的动作,xi表示第i个微服务的状态,J表示代价函数。
对于每一个微服务的Actor网络,都有一个获取全局信息的Critic网络来评价动作at在状态St下的未来总收益。
使用最小化损失函数来更新Critic网络,使Critic网络输出的Q值更加拟合动作at的长期收益;Critic网络策略梯度更新公式为:
θi表示微服务i的策略参数,μ表示微服务的策略,状态使用s表示,ai表示微服务i的动作,rewi表示动作at在状态st下获得的奖励,L表示损失函数,γ表示折扣因子,μ′表示目标网络的策略,a′k表示目标网络下微服务k产生的动作。
如图3所示,具体的模型训练过程如下:
1)迭代步骤2)7),直到模型收敛,每次迭代间隔时间t;
2)将每个微服务b的自身信息作为状态sb,t,进行数据预处理后输入模型;
3)每个微服务b基于对采集信息的性能感知产生动作ab,t
4)将所有微服务的动作聚合,得到联合动作
5)执行联合动作并获取并记录奖励rt和下一状态sb,t+1
6)将放入经验缓存区,并把状态sb,t+1赋值给状态sb,t
7)迭代每一个微服务,执行步骤8)12);
8)在经验缓存区随机抽取mini-batch个样本;
9)使用Critic网络的目标网络计算样本中动作的未来收益y;
10)通过最小化损失函数更新Critic网络;
11)通过Critic网络的输出更新Actor网络;
12)对每个微服务的目标网络进行软更新。
第四,通过训练后的多资源决策模型对待测微服务进行资源协同调度,获得资源分配策略。
通过训练后的多资源决策模型对待测微服务进行资源协同调度,获得资源分配策略,包括:
步骤1:微服务应用的工作负载发生变化;
步骤2:多资源决策模型进行初始化,每个智能体对应一个微服务,并为该微服务制定资源分配策略;
步骤3:以时隙t为间隔,迭代执行步骤4至步骤10;
步骤4:并行采集每个微服务b资源使用信息与微服务运行时信息,作为每个智能体所需要的自身状态sb,t
步骤5:对采集到的信息按照相同时间戳进行整合;
步骤6:信息整合后,对所有信息计算均值和标准差,进行Z-Score标准化,使得所有数据都在同一数量级;
步骤7:每个智能体获取自身状态sb,t,作为训练后的多资源决策模型的输入;
步骤8:针对当前观测状态,训练后的多资源决策模型为微服务制定多资源的协同分配策略,目标是在尽可能保障微服务应用尾延迟SLO的同时,最大化整体资源利用率;
步骤9:训练后的多资源决策模型输出的动作策略组成联合动作
步骤10:将动作Ai与微服务i匹配,并发为每个微服务进行资源配置。
多资源决策模型训练中,基于模型不同映射关系进行迁移学习,包括:
为了使本发明可以快速地适应多种微服务场景,引入了迁移学习。迁移学习指的是一种将预训练模型重新用在另一任务中的机器学习方法。由于智能体对微服务场景的特性比较敏感,不同微服务场景共享同一个多资源决策模型时,资源分配效果会显著降低,并且因为微服务场景的差异,为用户的工作负载训练定制的多资源决策模型需要大量的时间,增加了模型的训练成本。本发明通过使用迁移学习,来加快模型的收敛速度,降低训练成本。
针对不同的微服务场景,制定了两种基于不同映射关系的迁移学习方法。定义微服务场景s为源域,微服务场景t为目标域,目标域与源域有着相同的资源配置R,将在微服务场景s下训练收敛的多资源决策模型迁移到微服务场景t下进行再训练;
当微服务场景s和微服务场景t拥有相同数量的微服务个数n时,将两个场景下的微服务一一对应,使用在微服务场景s下训练收敛的多资源决策模型对应微服务场景t下的每一个微服务,进行一对一模式的迁移学习;
当微服务场景s和微服务场景t拥有不同数量的微服务个数时,在微服务场景s下只训练一个多资源决策模型,将此多资源决策模型与微服务场景t下的所有微服务对应,进行一对多模式的迁移学习。
一对一模式,是指:两个微服务场景s,t拥有相同数量的微服务,将微服务场景s下的微服务与微服务场景t下的微服务按照任意对应原则一一对应,假设微服务sx与微服务ty建立了对应关系,则使用微服务sx的网络参数对微服务ty进行初始化,初始化之后,微服务场景t再与环境交互,进行参数更新。
一对多模式,是指:两个微服务场景s,t拥有不同数量的微服务,在微服务场景s下,只训练一个多资源决策模型,将此多资源决策模型与微服务场景t下每个微服务对应,使用此多资源决策模型的网络参数初始化微服务场景t下的每个微服务,初始化完成之后,微服务场景t与环境进行交互,对网络参数进行更新。
实施例4
根据实施例3所述的一种性能感知的大规模微服务智能多资源协同调度方法,其区别在于:
对微服务进行资源调度的资源分配,包括:
通过Cgroup的cpu.cfs_quota_us与memory.limit_in_bytes文件,修改微服务的CPU和内存使用限制,通过blkio.throttle.read_bps_device与blkio.throttle.write_bps_device限制IO速率;网络带宽由TC工具进行限制;LLC通过Intel CAT技术进行限制。
本发明一种性能感知的大规模微服务智能多资源协同调度方法主要包括以下实现过程,如图4所示:
步骤1:将应用程序以业务功能或流程进行划分,各业务功能都实现成为一个可以自主执行的个体服务;通过特定的协议将个体服务进行整合,构建一个基于微服务架构的应用程序;
步骤2:确立大规模微服务多资源协同调度的优化问题;
步骤3:确定多智能体深度强化学习模型的状态、动作、奖励、状态转移概率等值;
步骤4:多智能体深度强化学习网络模型初始化;
步骤5:训练模型,直到模型收敛到稳定值
步骤6:基于收敛模型,对大规模微服务进行多层、多维度资源的协同调度。
图8为微服务b的CPU实际使用与分配份额对比示意图。图8展示了微服务b在不同负载下,CPU的实际使用情况以及多智能体深度强化学习模型给出的多层联动的CPU分配份额。可以看出在不同负载下,CPU的使用份额是变化的,通过对采集的微服务信息进行感知,多智能体深度强化学习模型为微服务b制定了多层联动的CPU份额分配策略。在此策略下,尽可能地保障了微服务应用的端到端尾延迟小于SLO,且降低了微服务b在CPU资源维度的资源冗余,进而提高整体资源利用率。
实施例5
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现性能感知的大规模微服务智能多资源协同调度方法的步骤。
实施例6
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现性能感知的大规模微服务智能多资源协同调度方法的步骤。
实施例7
一种性能感知的大规模微服务智能多资源协同调度系统,如图5所示,包括:
信息采集模块,被配置为:采集微服务资源使用信息与微服务运行时信息并进行数据预处理;
基于多智能体深度强化学习的多层联动的多资源决策模块,被配置为:对资源协同调度进行决策的性能感知的多层联动;
资源分配模块,被配置为:对微服务进行资源调度的资源分配。

Claims (13)

1.一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,包括:
采集微服务资源使用信息与微服务运行时信息并进行数据预处理;
对资源协同调度进行决策的性能感知的多层联动;
对微服务进行资源调度的资源分配;
对资源协同调度进行决策的性能感知的多层联动,包括:
第一,定义问题,如下:
假设构成微服务应用的m个微服务由集合表示;对于任意的微服务b,资源使用信息用集合Rb={cb,mb,cab,ob,neb}表示,cb表示微服务b的CPU使用率,mb表示微服务b的内存使用率,cab表示微服务b的缓存使用,ob表示微服务b的IO速率,neb表示微服务b的网络带宽;任意微服务b的微服务运行时信息包括单体微服务的端到端延迟Lab、负载变化WCb及请求到达微服务时间RAb;假设微服务b与微服务b+1之间由特定的协议进行通信,两者之间则具有依赖关系,记作D(b,b+1),对具有依赖关系的微服务b制定一个多层联动的多种资源协同调度策略πb,以在尽可能保障SLO的同时,最小化资源使用;
多层联动的多资源协同调度问题是一个多目标优化问题,目标函数是最小化整体应用的多个维度的资源使用,为每个微服务每一维度的资源制定一个多层联动的协同的分配策略,问题约束有以下三点:首先,每个节点上微服务的每种资源累积使用量不能超过可用容量;其次,微服务之间如果存在依赖关系,则对两者进行微服务层之间的联合资源分配;第三,在当前资源协同调度策略下,微服务应用的端到端尾延迟小于SLO;
第二,多资源决策模型构建,如下:
基于深度强化学习技术,对使用马尔可夫决策过程对定义的问题进行建模,包括:
状态空间是指:任意的微服务b在时间t都有状态具体包括:CPU的使用份额cb,t、内存的使用份额mb,t、缓存使用份额cab,t、IO的读写速率ob,t、网络带宽neb,t、微服务应用的端到端延迟latencyt、微服务b的请求负载变化WCb,t
动作空间是指:任意的微服务b的独立动作空间为表示任意的微服务使用的资源配额;G的联合动作空间为 表示微服务i的动作空间,表示微服务B的动作空间;任意的微服务b的独立动作包括CPU的使用份额、内存的使用份额、缓存使用份额、IO速率以及网络带宽;
奖励函数是指:在t时刻,任意的微服务b针对状态sb,t产生了动作Ab,t,为了评价任意的微服务b产生的动作Ab,t,其奖励函数reward如下所示:
其中,Res_ui,j表示微服务i第j种资源的使用份额,Res_limi,j表示微服务i第j种资源的份额限制;latency表示当前微服务应用的端到端延迟,SLO为服务等级目标,θ1、θ2表示超参,m是微服务个数,r是微服务i的使用资源数量;
状态转移概率是指:选择基于确定性策略的算法,该算法对于同一状态st,产生的动作at是唯一的,表示为μθ(s)=a;
强化学习采用Actor-Critic框架,包括动作策略网络即Actor网络和Critic网络;Actor网络通过对采集信息进行性能感知用来产生多层联动的多资源协同调度动作,Critic网络用来评价Actor网络产生的动作;
通过多智能体深度确定性策略梯度算法即MADDPG算法来对资源分配进行决策;
MADDPG算法中,每个微服务b在t时刻不仅能获得自己所观察到的局部状态sb,t,还获得其他微服务的状态以及联合动作
第三,多资源决策模型训练,如下:
MADDPG算法采用集中式训练、分布式执行的方法;
训练时,Critic网络通过全局状态和动作来指导Actor网络学习分配策略;执行时,Actor网络只需要知道自身的局部状态通过对资源使用情况和运行时信息的性能感知就产生动作;
第四,通过训练后的多资源决策模型对待测微服务进行资源协同调度,获得资源分配策略。
2.根据权利要求1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,采集微服务资源使用信息与微服务运行时信息,包括:
通过基于容器技术的多维度资源,使用采集构件采集微服务资源使用信息,包括微服务的CPU使用率、内存使用率、缓存使用、IO速率、网络带宽;
通过基于远程过程调用级别的延迟监控和计算构件采集每个微服务运行时信息即微服务的端到端延迟和负载变化,并通过计算得到微服务应用的端到端延迟。
3.根据权利要求2所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,微服务运行时信息的采集方法为:首先,在数据库中得到单体微服务的端到端延迟和负载变化;然后,根据请求的不同,将获取的单体微服务的端到端延迟和负载变化进行划分,通过同一请求最晚离开微服务应用的时间减去最早进入微服务应用的时间,得到微服务应用的端到端延迟;最后,将微服务的运行时信息与对应微服务的资源使用信息按相同时间戳进行聚合,作为进行性能感知的多层联动的多资源分配的基础。
4.根据权利要求1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,数据预处理,包括:
采用了Z-Score标准化来对采集的数据包括微服务资源使用信息与微服务运行时信息进行标准化处理。
5.根据权利要求4所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,每次采集数据后,都进行数据预处理,求取全部数据均值与标准差,通过递推公式来计算均值与标准差;定义第n个时间间隔的平均值为En,方差为Fn,均值的递推公式为其中,E0=\0;En-1是指第n-1个时间间隔的平均值,\n表示第n个时间间隔个体\的观测值;
标准差由方差开平方获得,方差的递推公式为Fn=Fn-1+(\n-En-1)*(\n-En),其中,F0=0,Fn-1是指第n-1个时间间隔的方差。
6.根据权利要求1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,Actor网络基于Critic网络的评价即Q值来进行参数更新,更新的目标是最大化Q值;使用θ表示微服务的策略参数,μ表示微服务策略,状态使用s表示,有s=[\1,\2,…,\n],其中,\i表示第i个微服务的状态;第i个微服务在策略μ下,结合状态s以及联合动作[a1,a2,…,an]得到状态-价值函数Actor网络策略梯度更新公式为:
θi表示微服务i的策略参数,μi表示微服务i的策略,ai表示微服务i的动作,\i表示第i个微服务的状态,J表示代价函数;
对于每一个微服务的Actor网络,都有一个获取全局信息的Critic网络来评价动作at在状态St下的未来总收益。
7.根据权利要求1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,使用最小化损失函数来更新Critic网络,使Critic网络输出的Q值更加拟合动作at的长期收益;Critic网络策略梯度更新公式为:
θi表示微服务i的策略参数,ai表示微服务i的动作,rewi表示动作at在状态st下获得的奖励,L表示损失函数,γ表示折扣因子,μ′表示目标网络的策略,a′k表示目标网络下微服务k产生的动作。
8.根据权利要求1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,通过训练后的多资源决策模型对待测微服务进行资源协同调度,获得资源分配策略,包括:
步骤1:微服务应用的工作负载发生变化;
步骤2:多资源决策模型进行初始化,每个智能体对应一个微服务,并为该微服务制定资源分配策略;
步骤3:以时隙t为间隔,迭代执行步骤4至步骤10;
步骤4:并行采集每个微服务b资源使用信息与微服务运行时信息,作为每个智能体所需要的自身状态sb,t
步骤5:对采集到的信息按照相同时间戳进行整合;
步骤6:信息整合后,对所有信息计算均值和标准差,进行Z-Score标准化,使得所有数据都在同一数量级;
步骤7:每个智能体获取自身状态sv,t,作为训练后的多资源决策模型的输入;
步骤8:针对当前观测状态,训练后的多资源决策模型为微服务制定多资源的协同分配策略,目标是在尽可能保障微服务应用尾延迟SLO的同时,最大化整体资源利用率;
步骤9:训练后的多资源决策模型输出的动作策略组成联合动作
步骤10:将动作Ai与微服务1匹配,并发为每个微服务进行资源配置。
9.根据权利要求1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,多资源决策模型训练中,基于模型不同映射关系进行迁移学习,包括:
定义微服务场景s为源域,微服务场景t为目标域,目标域与源域有着相同的资源配置R,将在微服务场景s下训练收敛的多资源决策模型迁移到微服务场景t下进行再训练;
当微服务场景s和微服务场景t拥有相同数量的微服务个数n时,将两个场景下的微服务一一对应,使用在微服务场景s下训练收敛的多资源决策模型对应微服务场景t下的每一个微服务,进行一对一模式的迁移学习;
当微服务场景s和微服务场景t拥有不同数量的微服务个数时,在微服务场景s下只训练一个多资源决策模型,将此多资源决策模型与微服务场景t下的所有微服务对应,进行一对多模式的迁移学习。
10.根据权利要求1所述的一种性能感知的大规模微服务智能多资源协同调度方法,其特征在于,对微服务进行资源调度的资源分配,包括:
通过Cgroup的cpu.cfs_quota_us与memory.limit_in_bytes文件,修改微服务的CPU和内存使用限制,通过blkio.throttle.read_bps_device与blkio.throttle.write_bps_device限制IO速率;网络带宽由TC工具进行限制;LLC通过Intel CAT技术进行限制。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-10任一性能感知的大规模微服务智能多资源协同调度方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一性能感知的大规模微服务智能多资源协同调度方法的步骤。
13.一种性能感知的大规模微服务智能多资源协同调度系统,其特征在于,包括:
信息采集模块,被配置为:采集微服务资源使用信息与微服务运行时信息并进行数据预处理;
基于多智能体深度强化学习的多层联动的多资源决策模块,被配置为:对资源协同调度进行决策的性能感知的多层联动;
资源分配模块,被配置为:对微服务进行资源调度的资源分配;
对资源协同调度进行决策的性能感知的多层联动,包括:
第一,定义问题,如下:
假设构成微服务应用的m个微服务由集合表示;对于任意的微服务b,资源使用信息用集合Rb={cb,mb,cab,ob,neb}表示,cb表示微服务b的CPU使用率,mb表示微服务b的内存使用率,cab表示微服务b的缓存使用,ob表示微服务b的IO速率,neb表示微服务b的网络带宽;任意微服务b的微服务运行时信息包括单体微服务的端到端延迟Lab、负载变化WCb及请求到达微服务时间RAb;假设微服务b与微服务b+1之间由特定的协议进行通信,两者之间则具有依赖关系,记作D(b,b+1),对具有依赖关系的微服务b制定一个多层联动的多种资源协同调度策略πb,以在尽可能保障SLO的同时,最小化资源使用;
多层联动的多资源协同调度问题是一个多目标优化问题,目标函数是最小化整体应用的多个维度的资源使用,为每个微服务每一维度的资源制定一个多层联动的协同的分配策略,问题约束有以下三点:首先,每个节点上微服务的每种资源累积使用量不能超过可用容量;其次,微服务之间如果存在依赖关系,则对两者进行微服务层之间的联合资源分配;第三,在当前资源协同调度策略下,微服务应用的端到端尾延迟小于SLO;
第二,多资源决策模型构建,如下:
基于深度强化学习技术,对使用马尔可夫决策过程对定义的问题进行建模,包括:
状态空间是指:任意的微服务b在时间t都有状态具体包括:CPU的使用份额cb,t、内存的使用份额mb,t、缓存使用份额cab,t、IO的读写速率ob,t、网络带宽neb,t、微服务应用的端到端延迟latencyt、微服务b的请求负载变化WCb,t
动作空间是指:任意的微服务b的独立动作空间为表示任意的微服务使用的资源配额;G的联合动作空间为 表示微服务i的动作空间,表示微服务B的动作空间;任意的微服务b的独立动作包括CPU的使用份额、内存的使用份额、缓存使用份额、IO速率以及网络带宽;
奖励函数是指:在t时刻,任意的微服务b针对状态sb,t产生了动作Ab,t,为了评价任意的微服务b产生的动作Ab,t,其奖励函数reward如下所示:
其中,Res_ui,j表示微服务i第j种资源的使用份额,Res_limi,j表示微服务i第j种资源的份额限制;latency表示当前微服务应用的端到端延迟,SLO为服务等级目标,θ1、θ2表示超参,m是微服务个数,r是微服务i的使用资源数量;
状态转移概率是指:选择基于确定性策略的算法,该算法对于同一状态st,产生的动作at是唯一的,表示为μθ(s)=a;
强化学习采用Actor-Critic框架,包括动作策略网络即Actor网络和Critic网络;Actor网络通过对采集信息进行性能感知用来产生多层联动的多资源协同调度动作,Critic网络用来评价Actor网络产生的动作;
通过多智能体深度确定性策略梯度算法即MADDPG算法来对资源分配进行决策;
MADDPG算法中,每个微服务b在t时刻不仅能获得自己所观察到的局部状态sb,',还获得其他微服务的状态以及联合动作
第三,多资源决策模型训练,如下:
MADDPG算法采用集中式训练、分布式执行的方法;
训练时,Critic网络通过全局状态和动作来指导Actor网络学习分配策略;执行时,Actor网络只需要知道自身的局部状态通过对资源使用情况和运行时信息的性能感知就产生动作;
第四,通过训练后的多资源决策模型对待测微服务进行资源协同调度,获得资源分配策略。
CN202210644605.9A 2022-06-08 2022-06-08 一种大规模微服务智能多资源协同调度方法及系统 Active CN115037749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210644605.9A CN115037749B (zh) 2022-06-08 2022-06-08 一种大规模微服务智能多资源协同调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210644605.9A CN115037749B (zh) 2022-06-08 2022-06-08 一种大规模微服务智能多资源协同调度方法及系统

Publications (2)

Publication Number Publication Date
CN115037749A CN115037749A (zh) 2022-09-09
CN115037749B true CN115037749B (zh) 2023-07-28

Family

ID=83122531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210644605.9A Active CN115037749B (zh) 2022-06-08 2022-06-08 一种大规模微服务智能多资源协同调度方法及系统

Country Status (1)

Country Link
CN (1) CN115037749B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116055322B (zh) * 2022-10-30 2024-07-19 国网江苏省电力有限公司盐城供电分公司 一种多设备协同工作方法
CN115421930B (zh) * 2022-11-07 2023-03-24 山东海量信息技术研究院 任务处理方法、系统、装置、设备及计算机可读存储介质
CN115456313B (zh) * 2022-11-10 2023-01-10 北京航空航天大学 一种基于分层优化的工业互联网资源调配方法
CN115499511B (zh) * 2022-11-18 2023-03-24 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种基于时空图神经网络负载预测的微服务主动伸缩方法
CN116257363B (zh) * 2023-05-12 2023-07-25 中国科学技术大学先进技术研究院 资源调度方法、装置、设备及存储介质
CN116761194B (zh) * 2023-08-15 2023-11-03 甘肃省公安厅 一种无线通信网络中警务协同通信优化系统及方法
CN117519990B (zh) * 2024-01-03 2024-05-28 福建亿榕信息技术有限公司 一种边缘算力与边缘网关资源协同管理方法
CN117648123B (zh) * 2024-01-30 2024-06-11 中国人民解放军国防科技大学 一种微服务快速集成方法、系统、设备及存储介质
CN117938636B (zh) * 2024-03-25 2024-05-24 中国人民解放军国防科技大学 智能节点管控服务系统
CN117931461B (zh) * 2024-03-25 2024-08-16 荣耀终端有限公司 一种计算资源的调度方法、策略网络的训练方法以及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506657A (zh) * 2020-12-09 2021-03-16 上海交通大学 基于强化学习的面向微服务的资源管理系统
CN112799817A (zh) * 2021-02-02 2021-05-14 中国科学院计算技术研究所 一种微服务资源调度系统和方法
CN113778677A (zh) * 2021-09-03 2021-12-10 天津大学 面向sla的云边协同资源编排与请求调度智能优化方法
CN113783726A (zh) * 2021-09-02 2021-12-10 天津大学 一种面向sla的边云系统的资源自适应定制方法
CN113873022A (zh) * 2021-09-23 2021-12-31 中国科学院上海微系统与信息技术研究所 一种可划分任务的移动边缘网络智能资源分配方法
CN113993218A (zh) * 2021-11-18 2022-01-28 国网福建省电力有限公司经济技术研究院 一种mec架构下基于多智能体drl的协作卸载和资源分配方法
CN114385126A (zh) * 2022-03-24 2022-04-22 山东省计算中心(国家超级计算济南中心) 一种基于K8s的多租户深度学习模型研发系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367187B (zh) * 2015-08-27 2023-10-24 江森自控泰科知识产权控股有限责任公司 用于改进对分布式网络中的传感器流数据的处理的方法
US20220100566A1 (en) * 2021-12-10 2022-03-31 Intel Corporation Metrics-based scheduling for hardware accelerator resources in a service mesh environment
US20220114033A1 (en) * 2021-12-22 2022-04-14 Marius O. Arvinte Latency and dependency-aware task scheduling workloads on multicore platforms using for energy efficiency

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506657A (zh) * 2020-12-09 2021-03-16 上海交通大学 基于强化学习的面向微服务的资源管理系统
CN112799817A (zh) * 2021-02-02 2021-05-14 中国科学院计算技术研究所 一种微服务资源调度系统和方法
CN113783726A (zh) * 2021-09-02 2021-12-10 天津大学 一种面向sla的边云系统的资源自适应定制方法
CN113778677A (zh) * 2021-09-03 2021-12-10 天津大学 面向sla的云边协同资源编排与请求调度智能优化方法
CN113873022A (zh) * 2021-09-23 2021-12-31 中国科学院上海微系统与信息技术研究所 一种可划分任务的移动边缘网络智能资源分配方法
CN113993218A (zh) * 2021-11-18 2022-01-28 国网福建省电力有限公司经济技术研究院 一种mec架构下基于多智能体drl的协作卸载和资源分配方法
CN114385126A (zh) * 2022-03-24 2022-04-22 山东省计算中心(国家超级计算济南中心) 一种基于K8s的多租户深度学习模型研发系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A survey on QoE-oriented wireless resources scheduling;Ivo Sousa; Maria Paula Queluz; Antonio Rodrigues;;《Journal of Network and Computer Applications》(第158期);全文 *
基于进化多目标优化的微服务组合部署与调度策略;马武彬;王锐;王威超;吴亚辉;邓苏;黄宏斌;;《系统工程与电子技术》;第42卷(第01期);全文 *
面向云原生的智能运维架构和关键技术;薛龙; 陆钢; 周奇; 张会炎; 万亭君;;《电信科学》;第36卷(第12期);全文 *
面向微服务架构的容器级弹性资源供给方法;郝庭毅;吴恒;吴国全;张文博;;《计算机研究与发展》;第54卷(第03期);全文 *

Also Published As

Publication number Publication date
CN115037749A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
CN115037749B (zh) 一种大规模微服务智能多资源协同调度方法及系统
Guo et al. Cloud resource scheduling with deep reinforcement learning and imitation learning
Tuli et al. COSCO: Container orchestration using co-simulation and gradient based optimization for fog computing environments
CN110737529B (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
CN110389820B (zh) 一种基于v-TGRU模型进行资源预测的私有云任务调度方法
CN114638167B (zh) 基于多智能体强化学习的高性能集群资源公平分配方法
Fan et al. Multi-objective optimization of container-based microservice scheduling in edge computing
CN115168027B (zh) 一种基于深度强化学习的算力资源度量方法
CN116069512B (zh) 一种基于强化学习的Serverless高效资源分配方法及系统
CN113822456A (zh) 一种云雾混构环境下基于深度强化学习的服务组合优化部署方法
CN105744006A (zh) 一种面向多类型服务的粒子群优化用户请求调度方法
Yu et al. Workflow performance prediction based on graph structure aware deep attention neural network
CN113806018A (zh) 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法
CN114546608A (zh) 一种基于边缘计算的任务调度方法
Soula et al. Intelligent tasks allocation at the edge based on machine learning and bio-inspired algorithms
CN116820730B (zh) 多引擎计算系统的任务调度方法、装置及存储介质
Davami et al. Distributed scheduling method for multiple workflows with parallelism prediction and DAG prioritizing for time constrained cloud applications
CN113010296B (zh) 基于形式化模型的任务解析与资源分配方法及系统
Saxena et al. DRL-Based Slice Admission Using Overbooking in 5G Networks
Yang et al. Design of kubernetes scheduling strategy based on LSTM and grey model
CN117640378A (zh) 云边环境下性能感知的微服务自适应部署和资源分配方法及系统
CN117349026A (zh) 一种用于aigc模型训练的分布式算力调度系统
CN116909742A (zh) 多智能体协同计算资源调度方法、装置及系统
Kusic et al. Approximation modeling for the online performance management of distributed computing systems
Li et al. Cloud Instance Resources Prediction Based on Hidden Markov Model

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20221216

Address after: 250014 No. 19, ASTRI Road, Lixia District, Shandong, Ji'nan

Applicant after: SHANDONG COMPUTER SCIENCE CENTER(NATIONAL SUPERCOMPUTER CENTER IN JINAN)

Applicant after: Qilu University of Technology

Address before: 250014 No. 19, ASTRI Road, Ji'nan, Shandong

Applicant before: SHANDONG COMPUTER SCIENCE CENTER(NATIONAL SUPERCOMPUTER CENTER IN JINAN)

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 250014 No. 19, ASTRI Road, Lixia District, Shandong, Ji'nan

Patentee after: SHANDONG COMPUTER SCIENCE CENTER(NATIONAL SUPERCOMPUTER CENTER IN JINAN)

Country or region after: China

Patentee after: Qilu University of Technology (Shandong Academy of Sciences)

Address before: 250014 No. 19, ASTRI Road, Lixia District, Shandong, Ji'nan

Patentee before: SHANDONG COMPUTER SCIENCE CENTER(NATIONAL SUPERCOMPUTER CENTER IN JINAN)

Country or region before: China

Patentee before: Qilu University of Technology