CN115357339A - 计算资源的配置方法及装置 - Google Patents

计算资源的配置方法及装置 Download PDF

Info

Publication number
CN115357339A
CN115357339A CN202210974427.6A CN202210974427A CN115357339A CN 115357339 A CN115357339 A CN 115357339A CN 202210974427 A CN202210974427 A CN 202210974427A CN 115357339 A CN115357339 A CN 115357339A
Authority
CN
China
Prior art keywords
application
time
cpu utilization
estimated
tensor
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
CN202210974427.6A
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202210974427.6A priority Critical patent/CN115357339A/zh
Publication of CN115357339A publication Critical patent/CN115357339A/zh
Priority to US18/450,036 priority patent/US20240054020A1/en
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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/5033Allocation 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 data affinity
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例提供一种计算资源的配置方法及装置,基于流量预测和强化学习的决策评估相结合的构思,在流量时序预测基础上,进行各种应用的计算资源配置。其中,在配置过程中,一方面,基于表征向量对各个应用进行表征,使得计算资源配置方案具有迁移能力,即使面对新应用,也可以基于表征向量适用相应的流量与CPU利用率的关系,另一方面,基于强化学习的策略评估机制,以目标CPU利用率为目标确定长期回报,从而在最大化长期回报基础上对计算资源配置的决策结果进行调整,使得计算资源配置方案尽可能以较小的成本接近目标CPU利用率。该计算资源配置的技术方案,可以为云计算提供更有效的扩缩容机制。

Description

计算资源的配置方法及装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及计算资源的配置方法及装置。
背景技术
云原生是采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率的云计算应用架构。随着云原生技术的发展,容量保障工作也出现了不一样的特点,其中最明显的一项就是弹性伸缩,即根据业务需求和流量情况自动调整计算资源。弹性伸缩(Autoscaling)是云计算中的一种常用方法,通过该方法,服务器池中的计算资源量(通常根据有效的服务器数量来衡量)会根据服务器池中的负载进行动态伸缩。弹性伸缩与负载均衡紧密相关,并以负载为基础。简而言之就是,弹性伸缩是让云服务器的配置可以根据算力需求,自动增加或者自动减少。在服务器访问量增多,算力吃紧的情况下增加云服务器的计算机配置数量,直到访问量下降,算力富余后减少计算机配置台数。因此,在云原生架构下,如何为各个应用合理分配计算资源(算力),对资源有效利用率、应用的服务效率等有着深刻影响。
发明内容
本说明书一个或多个实施例描述了一种计算资源的配置方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供一种计算资源的配置方法,用于为多个应用在目标周期内配置计算资源,针对所述目标周期中的第一时刻/时间段,所述方法包括:根据多个应用各自在n个历史周期的n个历史流量序列,预测各个应用各自在所述目标周期内的估计流量序列;基于各个应用在所述目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率,其中,各个应用各自在所述目标周期内的估计流量序列,预先根据多个应用各自在n个历史周期的n个历史流量序列进行预测;将各个应用的预估CPU利用率、表征向量、各个应用在所述目标周期内的估计流量序列输入决策网络,由所述决策网络的输出结果确定所述第一时刻/时间段的当前计算资源配置策略;通过预先确定的策略评估网络评估当前计算资源配置策略带来的长期回报,从而以最大化所述长期回报为目标调整当前资源配置策略,其中,所述长期回报基于当前计算资源配置策略下的CPU利用率与预设的目标CPU利用率的差距确定。
在一个实施例中,在各个周期,各个应用还各自对应有处理特征,所述处理特征包括时间特征和数据更新特征中的至少一项,单个应用的估计流量序列基于n个历史周期的n个历史流量序列及处理特征进行预测。
在一个实施例中,所述针对单个应用,在所述目标周期内的估计流量序列通过以下方式进行预测:将n个历史流量序列各自与相应的处理特征按照第一融合方式进行融合,得到n个第一融合张量;通过n个第一融合张量提取基于n个历史流量序列的流量周期特征;基于所述流量周期特征与所述目标周期的处理特征,预测该单个应用在所述目标周期内的单个估计流量序列。
在一个实施例中,所述第一融合方式为嵌入,所述根据多个应用各自在n个历史周期的n个历史流量序列,预测各个应用各自在所述目标周期内的估计流量序列包括:对该单个应用在所述目标周期内的处理特征按照所述第一融合方式进行嵌入,得到第一嵌入张量;将所述第一嵌入张量中的元素作为查询Q的输入,所述流量周期特征同时作为键K和值V的输入,通过多头注意力机制进行处理得到所述单个估计流量序列。
在一个实施例中,所述基于各个应用在所述目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率包括:将各个估计流量序列分别与相应应用的处理特征按时间维度对应拼接,得到各个拼接张量;基于各个拼接张量确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率。
在一个实施例中,单个应用的表征向量通过以下方式确定:对该单个应用对应的拼接张量添加满足标准高斯分布的扰动,得到相应的扰动张量;通过自注意力机制的第二编码网络处理所述扰动张量在时间维度的各个元素,并基于对得到的各个第二编码结果的拼接,得到对所述扰动张量的第二编码张量;解码所述第二编码张量,得到该单个应用的表征向量。
在一个实施例中,单个应用基于前一时刻/时间段已配置计算资源份额的预估CPU利用率通过以下方式确定:通过自注意力机制的第一编码网络处理该单个应用对应的拼接张量在时间维度的各个元素,得到各个第一编码结果;将所述拼接张量的各个元素作为键K,各个第一编码结果作为值V,在所述拼接张量中与所述第一时刻/时间段对应的元素作为查询Q输入的情况下,通过交叉注意力机制的第三编码网络确定相应回报作为参考张量;通过解码网络处理所述表征向量、所述参考张量、所述拼接张量中作为查询Q输入的相应元素,预测单个应用的预估CPU利用率。
在一个实施例中,所述计算资源通过虚拟机实例表示,所述计算资源配置策略包括为各个应用分配的虚拟机实例数。
在一个实施例中,所述决策网络的输入还包括基于前一次决策的计算资源配置份额以及目标周期的处理特征,所述决策网络的输出结果为针对各个应用的计算资源调整份额,所述当前计算资源配置策略基于在前一次计算资源配置策略基础上按照各个应用的计算资源调整份额进行调整确定。
在一个实施例中,所述长期回报与所述差距及计算资源调整份额的转换成本均为负相关。
在一个实施例中,所述以最大化所述长期回报为目标调整当前资源配置策略包括:以所述最大化所述长期回报为目标调整各个应用的表征向量;基于调整后的表征向量,确定预估CPU利用率,并根据调整后的表征向量、预估CPU利用率,由所述决策网络进行决策从而确定当前计算资源配置策略。
在一个实施例中,所述方法还包括:在所述长期回报满足预定条件的情况下,按照当前计算资源配置策略为各个应用在所述目标周期中的第一时刻/时间段进行资源配置。
根据第二方面,提供一种计算资源的配置装置,针对所述目标周期中的第一时刻/时间段,用于为多个应用在目标周期内配置计算资源,所述装置包括:
流量预测单元,配置为根据多个应用各自在n个历史周期的n个历史流量序列,预测各个应用各自在所述目标周期内的估计流量序列;
资源利用率预测单元,配置为基于各个应用在所述目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率;
决策单元,配置为将各个应用的预估CPU利用率、表征向量、各个应用在所述目标周期内的估计流量序列输入决策网络,由所述决策网络的输出结果确定所述第一时刻/时间段的当前计算资源配置策略;
评估单元,配置为通过预先确定的策略评估网络评估当前计算资源配置策略带来的长期回报,从而以所述长期回报最大化为目标调整当前资源配置策略,其中,所述长期回报基于当前计算资源配置策略下的CPU利用率与预设的目标CPU利用率的差距确定。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,通过强化学习架构,在流量时序预测基础上,进行各种应用在目标周期的各个时刻/时间段进行计算资源配置。其中,在单个时刻/时间段配置过程中,一方面,基于表征向量对各个应用进行表征,使得计算资源配置方案具有迁移能力,即使面对新应用,也可以基于表征向量适用相应的流量与CPU利用率的关系,另一方面,基于强化学习的策略评估机制,以目标CPU利用率为目标确定长期回报,从而在最大化长期回报基础上对计算资源配置的决策结果进行调整,使得计算资源配置方案尽可能以较小的成本接近目标CPU利用率。该计算资源配置的技术方案,可以实现大规模的在线应用扩缩容场景,为云计算提供更有效的扩缩容机制。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本说明书的一个实施场景示意图;
图2示出本说明书技术构思下的计算资源的配置实施架构示意图;
图3示出本说明书一个实施例的计算资源的配置流程示意图;
图4示出一个具体例子的流量预测模块的实施架构示意图;
图5示出一个具体例子的CPU利用率预测模块的实施架构示意图;
图6示出一个具体例子的决策模块的实施架构示意图;
图7示出本说明书一个实施例的计算资源的配置装置的结构框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1示出了本说明书的一个实施场景示意图。该实施场景中,至少可以涉及多个智能终端,以及云端服务方。其中,各个智能终端可以被各个用户持有,用户通过智能终端安装的各种应用与云端的服务方进行交互。终端安装的应用例如可以包括购物类应用、支付应用、社交平台、浏览器应用、地图类应用等等。云端是可以提供云计算、云存储、云安全等等云服务的服务端,例如,作为云服务方,为各类应用提供服务支持。
云端可以调配大量计算资源,如一百万台计算机、可容置在2千万台计算机上的至多1亿台虚拟机(VM)等,来完成云服务。其中,云服务可以支持大量应用(如3千万个应用)进行数据处理,并可以同时支持多个应用的数据处理。为了能够对同时处理数据的各个应用更好地配置资源,云端可以通过资源配置服务器进行计算资源的调度和配置。从而,针对流量较大的应用配置较多的计算资源,例如计算机台数,而对于流量较小的应用,配置较少的计算资源。
应用的流量也可以理解为应用的负载,其通常是不固定的,例如,社交平台应用的流量是白天多夜晚少,而网络游戏类应用的流量是白天少晚上多,等等。为了对云端的计算资源进行合理配置,可以采用弹性伸缩(扩缩容)的方式进行资源配置。例如,一种弹性伸缩的机制是即时的动态伸缩模式。举例而言,设定某应用服务的CPU利用率目标值为75%,那么当CPU利用率超过75%时,就会触发策略,自动为该服务增加实例(如虚拟机数量),降低CPU利用率;而CPU利用率过低时,又会缩减实例,最终将CPU利用率维持在75%左右。再例如,另一种弹性伸缩的机制是预测伸缩模式。预测伸缩模式主要原理是通过机器学习的方式,分析多天(如14天)范围内的历史负载数据,预测未来预定天数(如2天)的负载指标和容量需求,从而预测伸缩模式会引入一个“伸缩规划”动作,在服务达到预测的容量时提前完成扩容操作。
然而,在一些情况下,云端服务的应用数量较多,在线的业务特性有非常高的稳定性要求、读写应用较多、冷启动时间长、成功率不高、延迟敏感、业务不可重试,或者承担金融级高可持续性的业务要求等等情形。考虑到这些情形下在线应用的业务流量来源和模型复杂,内部流量和外部用户行为经常性突变(如运营活动、推送消息、股市波动、变更、预案、服务异常等突发性情形较多),如果流量模型不确定(如涉及RPC、MSG、HTTP、ANTQ等接口方法),并且业务持续迭代造成性能波动(如功能迭代、架构升级、宿主机混部差异),可能导致在线应用资源包括CPU、线程池、热点、存储等多样瓶颈。
为了解决以上问题,本说明书提供一种新的计算资源的配置方案,基于流量预测和强化学习对收益的评估,使得在整体CPU利用率尽可能接近目标利用率的情况下,合理配置计算资源,从而为各个应用提供更好的服务。该计算资源的配置方案例如可以由云端的资源配置服务器执行。
本说明书的技术构思下,为了适应各种应用的在线配置,可以基于以下假设:
(1)计算资源的负载能力是均衡的。例如,100个单位的业务流量,由50台虚拟机执行的情况下,每台虚拟机的负载是2个单位,这2个单位流量可以是单台虚拟机的单位工作负载;
(2)假设所有的应用可以划分成有限的类别,属于同一个类别的应用,其可以通过相似的向量来表征。这里的相似,可以是功能上的相似,例如都是购物类应用,也可以是业务流量分布上的相似,例如都是购物类应用和社交平台类应用均在晚上8点至11点具有一天中的最高流量。具有相似性的应用可以通过深度神经网络的挖掘而映射为相似的表征向量。
在以上假设的基础上,本说明书的技术构思还基于强化学习的构思,对计算资源的配置方案进行调整。强化学习(Reinforcement Learning,RL):又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,基于马可夫决策链(MDP),用于描述和解决智能体(Agent)在与环境(Environment)的交互过程中通过学习策略以达成回报最大化(reward)或实现特定目标的问题。如本领域技术人员所知,强化学习是一种基于序列行为(action)的反馈,进行的无标注的学习方法。智能体观察并获得执行环境的状态s(state),根据一定策略π,针对当前执行环境的状态确定要采取的行为或动作a(action)。这样的行为作用于执行环境,会改变执行环境的状态,同时产生一个反馈,该反馈又称为奖励或奖励分数r(reward)。智能体Agent以试错的方式进行学习,通过与Environment进行交互获得reward并指导行为action,目标是使Agent获得最大的回报reward,或者尽可能接近特定目标。其中,reward作为由环境提供的强化信号,是对产生动作好坏程度的一种评价,而不是告诉智能体如何做出正确的动作。由于环境提供的强化信号很少,智能体需依靠自身经历进行学习,在与环境的交互中获得知识,改进自身的动作选择策略以适应环境。
更具体地说,智能体通过反复不断地观察状态、确定行为、收到反馈,从而进行学习,学习的目标是理想的值函数或策略。其中,值函数是,通过执行策略π,预期达到的折扣累积奖励函数。
例如可以如下定义状态值函数:
Vπ(s)=Eπ[Rt|st=s]
其中,Rt表示按照策略π的轨迹执行所获得的长期累计回报。上述状态值函数表示,从状态s出发,使用策略π所带来的累积奖励的期望。
还可以类似的定义动作-状态值函数:
Qπ(s,a)=Eπ[Rt|st=s,at=a]
该状态-动作值函数表示,从状态s出发,执行动作a后再使用策略π所带来的累积奖励。
根据马尔可夫特性,二者有如下关系:
Figure BDA0003798166020000061
Figure BDA0003798166020000062
其中,状态值函数Vπ(s)是动作-状态值函数Qπ(s,a)关于动作a的期望,γ为衰减系数,rt+1表示执行动作a得到的收益。
在本说明书的技术构思下,状态s可以基于流量时序确定,动作a可以是对计算资源分配策略的调整策略,如对应用A增加5个虚拟机实例等。并且,状态s还可以与单位工作负载和应用的表征向量相关。结合以上假设,可以将目标CPU利用率作为特定目标,在Agent确定的计算资源分配策略达到的CPU利用率与目标CPU利用率一致时,满足特定目标,或者说可以获得最大回报。因此,基于计算资源分配策略达到的CPU利用率与目标CPU利用率之间的差距,可以确定Environment给出的回报reward。Action可以是计算资源的调整数量,通过以上差距可以指导调整action,使得差距尽可能接近0,以期获得最大回报。
如此,在以上假设基础上结合强化学习,可以基于应用的流量分布的表征向量快速适应各种应用,并在目标CPU利用率的指导下不断调整计算资源分配策略,从而更加准确有效地确定计算资源分配方案。
图2示出了本说明书针对计算资源的配置方法的一个具体实施架构。如图2所示,该架构可以按照功能分为3个部分:流量预测模块①、CPU利用率预测模块②、伸缩决策模块③。以下简单介绍三个模块的功能。
其中,流量预测模块①可以是一个通用于各个应用的预测模块。其可以用于通过各个应用靠前的历史周期内的历史流量时序,预测靠后的目标周期的流量时序。其中,流量时序是业务流量这个业务指标上,在多个时间段内(比目标周期小的时间单位,一个时序周期可以分割为多个时间段)或时间点上对应的指标值构成的时间序列,为了方便,本说明书也可以称为流量序列。例如,某个应用在2022年7月2日24个整时点上的业务流量数据,构成时间序列:30万兆字节,10万兆字节……100亿兆字节,20亿兆字节,1千万兆字节,等等,作为2022年7月2日的流量时序。未来目标周期例如为2022年7月3日,基于历史的多个流量时序(如当前时间t之前L天分别对应的L个流量时序)可以预测该目标周期内的流量时序,如图2中记为
Figure BDA0003798166020000071
根据前文的描述,CPU利用率是衡量计算负载的重要指标,也是计算资源分配对计算性能带来的影响的重要指标。不同类型的应用,即使相同的业务流量,由于其业务特性和数据特性的区别,对计算机CPU利用率的影响也可能不同。CPU利用率预测模块②用于基于流量预测模块①预测的流量时序,确定各个时间段或时间点基于前一时间段或时间点(时刻)已配置的额计算资源份额的预估CPU利用率。这里的预估CPU利用率描述出在当前计算资源配置份额下,各个应用基于相应流量可能达到的CPU利用率。
另一方面,基于前文的假设,为了区分应用所属的类别,在预测CPU利用率时,还可以考虑对数据分布进行表征,如图2中通过流量预测模块①预测的流量时序确定的表征向量z,用于表征当前流量分布对应的应用所属类别。也就是说,CPU利用率预测模块②可以输出两种参数,预测得到的CPU利用率,以及针对应用流量数据特点进行表征的表征向量。
进一步地,基于强化学习进行弹性伸缩决策的伸缩决策模块③,可以利用CPU利用率预测模块②输出的预估CPU利用率和各个应用的表征向量,对云端计算资源的分配份额进行决策,例如对虚拟机实例数进行调整决策。这是一个在给定CPU利用率估计的情况下寻找最佳资源的动态决策过程。可以理解,CPU利用率预测模块②输出的CPU利用率预测值描述出在当前计算资源配置份额下,各个应用基于相应流量可能达到的CPU利用率。伸缩决策模块③可以在适当增加或减少使用的计算资源份额,保持CPU利用率在一定目标范围,来实现弹性伸缩。而计算资源和CPU利用率之间的关系是比较复杂的,调整计算资源通常会在云端中产生一定的成本(例如,为应用切换虚拟机时的工程成本)。借助强化学习RL可以找到最佳虚拟机数量,同时最大限度地降低长期成本。注意到对于大规模云系统,基于模型的RL比无模型的方法更可靠,这是因为强化学习模式可以高效地采样,并且有效地避免在训练期间由缩放模型和在线环境之间的直接交互引起的潜在风险。
为了进一步将这种任务信息用于计算资源的配置决策过程,可以将表征向量、CPU利用率与强化学习的智能体决策相结合。更具体地,将它们作为强化学习输入的一部分,参与到策略制定和策略评估中。可以理解,对于计算资源而言,其全部计算资源是不需占满的,那样会导致成本的增加。因此,伸缩决策模块③通过与CPU利用率预测模块②进行交互,学习如何不断扩展计算资源份额(如虚拟机数量),目标是在未来一段时间内保持CPU利用率的稳定。
结合强化学习理论,伸缩决策模块③可以包括决策网络和策略评估网络(基于价值函数实现)。决策网络根据以上的CPU利用率预测值和表征向量对计算资源的配置份额给出调整策略,决策结果例如为各个应用分别调整的计算资源份额。基于决策结果,可以确定为各个应用分配的计算资源份额(如分别配置多少个虚拟机实例)。如此,可以进一步经由价值函数评估相应分配结果带来的预期收益,即在相应分配结果下的CPU利用率。这样,经由策略评估网络可以评估相应分配结果下整体的CPU利用率与目标CPU利用率之间的差距。基于该差距可以调整CPU利用率预测模块②中的相应参数,以改变表征向量z和预估CPU利用率,进而由决策网络给出下一步的动作action,基于action调整当前配置策略。迭代该过程,直至相应分配结果下的CPU利用率与目标CPU利用率之间的差距小于预定值,输出当前决策结果。
基于图2示出的实施架构可以看出,本说明书提供的技术方案,一方面基于强化学习不断调整计算资源的分配策略,以达到目标CPU利用率下的较佳配置,另一方面,通过类别表征向量表征各个应用,在进行计算资源配置时充分考虑应用的数据特点,从而可以提供更加符合相关应用的计算资源配置方案,优化配置过程。同时,对于未经训练的新应用,通过表征向量z,可以快速确定其所属类别,从而为确定计算资源配置策略提供参考。
值得说明的是,图2示出的实施架构中,流量预测模块①可以基于历史流量时序单独训练,而CPU利用率预测模块②和伸缩决策模块③则可以基于强化学习的策略评估网络对长期回报的评估,经由梯度的反向传播,向最大化长期回报方向调整各个参数,从而完成训练。在线上执行阶段,流量预测模块①中的模型参数以及CPU利用率预测模块②中的部分参数可以是固定的,在以上长期回报不满足预定条件(如趋于收敛)的情况下,可以调整确定表征向量z所涉及的参数,如引入新的随机性数据,从而改变应用的表征,以进行更好的资源配置。
以下结合图3示出的一个实施例的计算资源的配置流程,详细描述本说明书的技术构思。图3示出的计算资源的配置流程可以用于为多个应用在未来目标周期内配置计算资源。其执行主体可以是具有一定计算能力的计算机、设备、服务器,如图1示出的资源配置服务器。可以理解,对各个应用进行资源配置的过程可以同时进行。而计算资源的配置过程中,后一时刻/时间段的资源配置方案可能依赖于前一时刻/时间段的资源配置方案,因此,对目标周期中的各个时刻/时间段,可以依次确定相应的资源配置方案。在图3中,以目标周期中的任一时刻/时间段(以下称为第一时刻/时间段)的资源配置决策过程为例进行描述。如图3所示,计算资源的配置流程可以包括以下步骤:步骤301,基于各个应用在目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率,其中,各个应用各自在目标周期内的估计流量序列,预先根据多个应用各自在n个历史周期的n个历史流量序列进行预测;步骤302,将各个应用的预估CPU利用率、表征向量、各个应用在目标周期内的估计流量序列输入决策网络,由决策网络的输出结果确定第一时刻/时间段的当前计算资源配置策略;步骤303,通过预先确定的策略评估网络评估当前计算资源配置策略带来的长期回报,从而以最大化长期回报为目标调整决策网络的输出结果从而调整当前资源配置策略,其中,长期回报基于当前计算资源配置策略下的CPU利用率与预设的目标CPU利用率的差距确定。
首先,在具体描述图3示出的资源配置过程之前需要说明的是,根据图2示出的技术构思,在对目标周期进行资源配置之前,可以先对各个应用在目标周期的流量进行预测。即可以存在以下前置步骤300,根据多个应用各自在n个历史周期的n个历史流量序列,预测各个应用各自在目标周期内的估计流量序列。该步骤可以对应图2中的流量预测模块①。
其中,各个应用的流量序列是以流量为业务指标的指标值构成的时间序列。这里的流量可以是业务量、用户数量、消耗的数据流量等等业务流量数据。业务量也可以理解为业务条数,例如单人次的购买业务,对应一条业务数。用户数量可以是在线(相应时间点或时间段与服务器建立会话的用户)用户数量。消耗的数据流量可以是相应时间点或时间段内为处理相关业务所消耗的通信流量,例如,一次读写操作消耗128比特流量,则相应时间点或时间段进行1万次读写操作消耗的流量为128万比特。
历史流量序列可以根据历史业务情况采集。流量序列的每个元素都对应着一个时间点或时间段。业务流量还可以具有周期性。例如,购物网站在一天中中午11点半至下午1点半、晚上8-12点流量较高,而白天其他时间段流量较低,晚上12点至次日6点,流量微乎其微。在例如,游戏网站的流量在晚上10点至次日凌晨4点流量最高,凌晨4点至上午10点流量最低。因此,历史流量序列可以按照周期采集,针对一个应用,可以采集多个周期内的流量数据。这里的周期通常不小于要预测时间序列的目标周期长度。例如,一个周期可以为1天、三天、一周等。历史周期的确定通常和目标周期相关,以合理体现处理特征及历史时序的数据量。通常,历史周期长度和目标周期一致。
该流量预测过程可以通过预先训练的预测模型实现。针对多个应用预测时间序列可以分开进行,也可以一起进行,在此不做限定。在一起进行的情况下,可以将各个应用对应的数据依次输入预先训练的预测模型,基于相应的输入格式,预测模型可以自动识别不同的应用对应的数据。
在一个可能的设计中,预测模型是输入为历史流量序列,输出为目标周期的流量预测序列的神经网络,经由预测模型从历史流量序列中提取流量数据的周期性特征,对目标周期的序列进行预测。流量数据的周期性特征例如可以通过卷积神经网络、循环神经网络等提取,在此不做限定。
在另一个可能的设计中,流量序列在各个时间点/时间段还可以对应有相应的处理特征,在从历史流量序列中提取周期性特征时,还可以考虑处理特征,并且在对目标周期的流量预测过程中加入目标周期各个时间点/时间段的已知处理特征。由于流量序列实际上是在时间维度上排列的各个流量值,在历史周期和目标周期的数据处理过程中,还可以将流量值与处理特征在时间维度上对齐进行处理,例如,上午9点的流量值与上午9点的处理特征对齐。
这里,处理特征可以是与业务处理相关的各种特征。例如可以包括但不限于,时间特征、数据更新特征等等。其中,时间特征可以用于表征流量的时间序列中单个元素对应的时间点或时间段。单个时间点或时间段对应的处理特征可以通过一个特征值描述,例如,上午9点对应特征值9等,也可以通过一个向量描述,例如一个向量(1,2,9)可以描述工作日上午9点等。数据更新特征例如为系统升级、数据增量更新、表格切换等等描述业务服务的数据更新的特征。以数据增量更新为例,某项业务每天凌晨2点根据当天的增量数据更新服务数据(如知识图谱数据),则,与流量时间序列中凌晨2点对应的维度一致地,在处理特征中数据增量更新特征的相应维度还可以对应有预定特征值(如1),其他维度对应其他特征值(如0)。在一个可选的例子中,处理特征可以通过多维张量描述,以2维时间张量为例,可以在hour of the day(一天中的时间,如上午9点至10点)以及day of the week(一周中的时间,如周三)两个时间维度的张量进行描述。
在可选的实现方式中,单个历史周期的历史流量序列和处理特征可以按照预先确定的融合方式融合在一起,形成融合张量,用于预测未来目标周期内的流量时序。这里的融合例如可以通过嵌入(emmbedding)、拼接等方式实现。其中,两个向量的拼接可以是维度长度上的拼接,也可以是在按照时间维度对齐的拼接,如两个向量并列排布形成矩阵。如此,各个历史周期可以分别形成各个融合张量。这里,可以将预定的融合方式成为第一融合方式,相应地,融合后得到的融合张量称为第一融合张量。
各个第一融合张量可以合并成更高维度的张量进行处理、按照周期的时间先后依次处理或者基于其周期特性通过循环神经网络进行处理,在此不做限定。其中,合并成更高维度的张量是将各个第一融合张量在某个维度(如时间维度)上按次序排列,构成更高维度的张量。例如行/列向量按列/行上的次序排列,构成二维张量,二维张量对齐排列,构成三维张量。按照周期的时间先后依次处理或者基于其周期特性通过循环神经网络进行处理均可以基于循环神经网络(RNN)进行。循环神经网络是与过去有关的神经网络,即,按照时间顺序排列靠前的数据及其处理结果可以影响排列靠后的数据的处理结果。RNN通常用于处理时序问题。这里,按照周期的时间先后依次处理,是将单个周期的数据看作一个整体,作为RNN的一个时刻数据,则n个历史周期的数据构成n个时刻的时序。时间中,更希望挖掘周期内部的流量规律,例如前文提到的一天作为一个周期,则一天内的不同时刻的流量数据所具有的规律性。此时,可以将各个历史周期对应的各个第一融合张量中,按照发生时刻的顺序,依次组合成各个时刻的新数据,依次输入循环神经网络进行处理。举例而言,历史周期数量为10,每个整点对应一个时刻,并对应单个时刻的流量数据、处理特征经融合后得到的融合特征,对于某个整点(如上午9点)而言,这10个历史周期的融合特征对应该整点的10个元素一起构成该整点的特征数据。循环神经网络可以依次处理各个整点在10个历史周期上的融合特征。
通过以上处理可以从历史周期中挖掘深层数据特征,例如历史流量序列中处理特征对流量的影响、时间特征对流量的影响、流量本身的周期性特征等等中的至少一项。这样,结合目标周期的处理特征,可以预测未来的目标周期内的时间序列,这里称为估计流量序列。
以上描述了针对单个应用进行数据处理以预测时间序列的流程,通过预测模型对各个应用相对应的数据的处理,可以针对各个应用分别得到相应的估计流量序列。在多个应用一起处理的情况下,预测模型的输出结果可以是多个应用的估计流量序列排布在一起构成的二维张量,其中一个维度对应各个应用,一个维度对应预测的估计流量序列。
作为一个示例,图4示出了一个具体例子的预测模型的实施架构。在图4所示的例子中,预测模型可以包括融合表征网络(如图4中的表征层)、周期性特征提取网络(如图4中的周期性提取器)、解码预测网络(如图4中的注意力解码器)。
其中,融合表征网络用于将各个周期内的流量序列、处理特征中的至少一项映射为预定维数的表征张量,该预定格式的表征张量可以称为融合张量,以便更好地用于后续处理。针对历史周期,既有历史流量序列(如x1、……xp的p维流量序列),又有处理特征(如u1、……up的p维处理特征),因此也可以看作是对历史流量序列和处理特征的融合,此时的表征张量又可以称为融合张量。
根据一个可选的实施方式,融合表征网络可以是线性网络。线性网络具有轻量级的特点,在满足运算需求的情况下,可以避免增加数据处理的复杂度。在一个实施例中,融合表征网络可以是嵌入网络(embedding,如BERT网络的嵌入层),此时,对历史流量序列、处理特征的融合方式为嵌入。其可以通过加权、求平均等方式完成特征融合。在另一个实施例中,融合表征网络可以通过转换矩阵实现,此时,历史流量序列和处理特征可以经拼接后由转换矩阵处理,得到表征张量。在融合方式为嵌入的情况下,表征张量也可以称为嵌入张量。例如,转换矩阵用W表示,表征张量用E表示,单个周期的历史流量序列通过X(如x1……xp等)表示,处理特征通过U(如u1……up等)表示,则融合表征网络例如可以记为E=W(X+U)。
根据一个可选的实施方式,融合表征网络可以是非线性网络。例如,融合表征网络可以通过卷积神经网络实现。通过卷积神经网络的处理,也可以将流量序列、处理特征中的至少一项映射为预定格式的表征张量。相较于线性网络,卷积神经网络具有更加复杂的网络结构,可以提取更高阶的特征,但网络体量比线性网络大,处理过程需要更多的计算空间。
在其他实施方式中,融合表征网络还可以通过其他方式实现,在此不再一一赘述。通常,针对单个周期,可以得到一个表征张量。实践中,多个历史周期对应的数据还可以以多维张量表示,从而由融合表征网络同时进行处理。例如,n个历史周期的历史流量序列和处理特征可以构成时序周期维度、时序长度维度、处理特征维度上的三维张量,经由融合表征层的处理,得到的为二维张量为(e1 1、……ep 1)、……(e1 n、……ep n)n×p维张量,或其转置构成的p×n维张量。其中的n行或n列分别对应n个历史周期。
周期性特征提取网络用于从融合张量中提取与周期相关的特征,具体而言,是周期内的数据变化特征。在图4中,周期性特征提取网络(如图4中的周期性提取器)通过循环神经网络LSTM实现。在其他实施例中,周期性特征提取网络也可以通过其他循环神经网络实现。以图4示出的周期性特征提取网络LSTM为例,单个周期的单个特征可以是融合了相应时间点或时间段的处理特征和流量值的融合特征,如此,单个特征维度在各个周期的融合特征值,可以形成具有时间信息的序列。例如,假设各个历史周期的历史流量序列长度为p(即对应p个时间点或时间段),n个周期在第1维的融合特征值依次为e1 1、e1 2……e1 n,以此类推,n个周期在第p维的融合特征值依次为ep 1、ep 2……ep n。对这些序列可以分别通过LSTM单元进行按照时间顺序的依次处理,或者如图4中将各个周期的融合向量的第1维至第p维分别通过p个并列的LSTM单元进行依次处理,最终在各个维度分别得到周期性特征h1、……hp。对于单个应用而言,相应的流量周期特征h1、……hp可以构成一个列向量或行向量。
该p维的流量周期特征可以经由解码预测网络用于预测目标周期的流量序列,即估计流量序列。在进行序列预测时,还可以加入目标周期的处理特征(如图4中的“未来可知的特征”)。处理特征可以包括时间特征、数据更新特征等。以时间特征为例,可以是一天中24小时制的各个整点数值,对应图4中的ut+1、……ut+H,共H项。其中,H可以小于或等于p。为了与历史处理特征具有一致的表征,对目标周期的处理特征也可以先经由融合表征网络进行处理,得到针对目标周期的处理特征的融合向量(或称为表征向量),如记为:et+1、……et+H。之后,可以利用解码预测网络处理基于历史周期中的历史流量序列确定的流量周期特征h1、……hp和目标周期的处理特征对应的表征向量et+1、……et+H,从而生成关于目标周期内的流量指标的估计流量序列。
其中,解码预测网络可以通过卷积神经网络、全连接神经网络、注意力网络等中的至少一项实现。在图4示出的例子中,可通过多头注意力网络(Multi-Head Attention)和多层感知机(MLP)实现。其中,多头注意力机制可以将Q、K、V线性映射多次,从而进行多次注意力操作,得到多个注意力结果进行聚合(如拼接等)。这里,Q表示查询query,K表示键key,V表示值value。多头注意力机制中每一个不同的Q考察的都是不同的方面,此时利用不同的Q从不同的角度给输入信息的重要性进行打分,从而通过一种并行的方式从输入中搜索需要的信息,再进行预定方式的聚合。假设预定方式为拼接,M个查询可以记为:
Figure BDA0003798166020000121
具体到图4示出的例子,可以将流量周期特征h1、……hp同时作为K和V,即K和V是一样的,将目标周期的处理特征对应的表征向量et+1、……et+H作为各个Q进行查询,从而得到解码结果。该解码结果进一步可以经由多层感知机(Multilayer Perceptron,简称MLP,也可以叫人工神经网络ANN,Artificial Neural Network)进行处理,从而被映射为目标周期的流量序列,如图4中的
Figure BDA0003798166020000122
图4给出了结合处理特征,根据多个应用在n个历史周期的历史流量序列,预测各个应用各自在目标周期内的估计流量序列的一种实现架构。在实践中,还可以通过其他架构实现这种预测,例如将n个历史周期的历史流量序列和处理特征、各个应用各自在目标周期内的处理特征排列在一起通过卷积神经网络处理并得到估计流量序列等,在此不再一一赘述。
值得说明的是,由于图4给出的网络架构是相对独立的预测模块,因此,其可以根据历史数据单独训练。例如,将目标周期产生的实际流量序列作为标签,将估计流量序列与实际流量序列对比得到模型损失,并向模型损失减小的方向调整各个模型参数,直至模型指标满足预定条件,如损失函数收敛等。
在可选的实现方式中,估计流量序列中的流量可以通过单位工作负载表示。这里的单位工作负载,可以理解为在资源均匀分配情况下,单台机器处理的单位工作量(如预测流量与机器数的比值)。举例而言,云服务器通过5台虚拟机处理两项业务,对应的流量向量为(100,50),则单位工作负载可以为(20,10)。也就是说,所有机器平均分配各个业务的流量时的CPU单位工作量。
该前置步骤300执行完成之后,可以按照各个时刻/时间段依次进行计算资源配置。针对单个时刻/时间段按照图3示出的流程进行计算资源配置。
首先,通过步骤301,基于各个应用在目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率。
该步骤可以对应图2中的CPU利用率预测模块②。基于前文的单位工作负载的概念可知,如果保持计算资源份额的配置不变,流量发生变化,则单位工作负载发生改变,从而,计算资源的CPU利用率发生改变。因此,要挖掘应用的工作负载(流量)与CPU利用率之间的关系。这种映射关系是异构的,例如体现在:(1)对于不同的应用,从工作负载到CPU利用率的映射是不同的;(2)对于同一应用,工作负载的子类型与CPU利用率有不同的相关性。为此,本说明书借鉴元学习的思想,为所有任务训练一个通用模型,该模型同时利用任务间的共性和差异进行从工作负载到CPU利用率的映射。
在该过程中,假设各个应用可以通过向量来表征,该向量称为表征向量。也就是说,假设所有的应用可以划分成有限的类别,属于同一个类别的应用,其可以通过相似的向量来表征,这也是表征向量的意义所在,即,表征相应应用所属的任务类别。在考虑应用的任务类型的情况下,任务类型可以作为CPU利用率预测的影响因素。也就是说,表征向量可以是用于CPU利用率预测的输入之一。
为了描述方面,下文针对单个应用进行任务类型的描述,单个应用在时刻t的CPU利用率可以记为
Figure BDA0003798166020000131
这里的
Figure BDA0003798166020000132
可以对应单个应用的单位工作负载在单份计算资源(如单个虚拟机实例)通常,可以首先对估计流量序列提取相应特征,再将相应特征映射到CPU利用率及表征向量,从而实现异构映射。因此,也可以将从估计流量序列提取相应特征的过程视为编码过程,将相应特征映射为CPU利用率及表征向量的过程视为解码过程。
在对任务进行表征过程中,可以借鉴神经过程(Neural Process)的构思,将神经网络和随机过程推理结合起来,弥补两种方法分别具有的一些缺点。神经过程可以学习在函数之上建模分布,能够根据上下文的观察估计其预测的不确定性,并将一些工作从训练转移到测试时间,以实现模型的灵活性。
具体处理过程中,考虑到表征向量是对一类任务类别的应用的描述,用于挖掘数据分布的特征,允许包容更多的相似数据,即允许可控偏差的存在,因此,可以将表征向量的编码过程与确定CPU利用率的编码过程分开进行。确定CPU利用率的编码过程可以使用估计流量序列的真实特征值,而表征向量的编码过程可以在估计流量序列真实特征值的基础上添加随机扰动并对扰动后的数据进行编码。另一方面,流量和CPU利用率之间的映射则更希望在确定的流量数据基础上进行。因此,表征向量可以通过相对独立的神经网络处理确定。
基于以上原理和构思,一方面,可以通过第一编码网络处理经由前置步骤300得到的估计流量序列,确定针对估计流量序列的第一编码结果,另一方面,可以通过第二编码网络处理以上估计流量序列,确定针对估计流量序列的第二编码结果。其中,第一编码结果体现流量和CPU利用率之间的映射关系,第二编码结果描述各个应用对应的任务类别。之后,基于解码网络对第一编码结果、第二编码结果的解码、融合,预测各个应用对应的CPU利用率。在具体实现中,第一编码网络、第二编码网络可以通过卷积神经网络、注意力网络等实现,解码网络可以通过卷积神经网络、多层感知机等实现。
考虑到目标周期的处理特征描述了数据处理特点,在以上编码过程中,还可以通过估计流量序列与相应应用的处理特征的融合张量,代替估计流量序列进行处理。其中,估计流量序列和目标周期内的处理特征可以通过拼接、叠加、嵌入等方式融合。在拼接融合方式下,可以按时间维度的元素对应拼接,即,对应同一时间点/时间段的元素对应在一起,此时的融合张量可以称为拼接张量。
图5以第一编码网络、第二编码网络为注意力网络、解码网络为多层感知机为例,示出了实现该步骤301的一个实施架构。下面以图5示出的实施架构对单个应用的数据处理为例进一步描述相应构思。
在图5中,实线箭头表示确定路径,即通过箭头指向的处理网络处理箭头起始项的原始数据,而虚线箭头表示隐藏路径,通过箭头指向的处理网络处理箭头起始项的扰动数据,⊕则用于表示张量的拼接。如图5所示,首先,将目标周期的估计流量序列和处理特征进行拼接,得到通过(c1,c2,c3……)描述的融合张量。
图5中,一方面,通过自注意力机制(Self Attention,图5中简记为Self Attn)的第一编码网络处理该单个应用对应的拼接张量在时间维度的各个元素(如H个,其中,单个元素可以是相应时间点/时间段对应的数值或张量),得到各个有限维的张量(r1,r2,r3……)作为各个第一编码结果。各个第一编码结果作为一个交叉注意力机制(CrossAttention,图5中简记为Cross Attn)的第三编码网络的查询值V,在各个时间点/时间段对应的拼接张量作为查询的键K,经由任一个时刻t的拼接张量
Figure BDA0003798166020000141
作为查询Q进行查询的情况下提供相应的预测回报rt,作为参考张量。
另一方面,对于融合张量(c1,c2,c3……),先增加随机噪声以引入一定的随机性,从而通过随机过程挖掘应用在目标周期内的流量序列的数据特征。这里的随机噪声可以按照预定分布随机生成,例如噪声数据满足标准高斯分布,即满足均值为0、方差为1的高斯分布。添加噪声后的融合张量可以称为扰动张量。针对扰动张量,可以通过第二编码网络对其进行编码,得到隐空间的编码张量(s1,s2,s3……)。在图5中,第二编码网络也通过自注意力机制(Self Attention,图5中简记为Self Attn)实现,得到的s1,s2,s3……经拼接融合为张量sm。sm经过处理,得到针对应用的任务类别表征张量z。
在图5中,第一编码网络和第二编码网络均为自注意力网络。自注意力模型(Self-Attention Model)是利用注意力机制来“动态”地生成不同连接的权重的注意力模型。自注意力在常规注意力模型基础上进行改进,减少对外部信息的依赖,更专注于数据本身的内部特征。第一编码网络和第二编码网络可以共同构成编码器,即一个编码器包括两个编码网络,第一编码网络和第二编码网络,并对应两个输出,分别为参考张量rt和表征张量z。t例如表示目标周期中的第一时刻/时间段。
进一步地,通过对参考张量rt、表征张量z以及当前的Query(如
Figure BDA0003798166020000151
)经由多层感知机进行融合,可以得到CPU利用率的预测值
Figure BDA0003798166020000152
可以理解的是,这里的CPU利用率的预测值
Figure BDA0003798166020000153
可以是在不改变已配置计算资源份额的基础上,基于流量变化,预测的CPU利用率,其可以指导计算资源配置份额的调整。举例而言,时刻t-1(对应第一时刻/时间段的前一时刻/时间段)对应的流量为100,已配置计算资源份额为30,对应的CPU利用率为40%,为了预测t时刻的CPU利用率,可以通过时刻t(对应第一时刻/时间段)的预测流量120,确定拼接张量
Figure BDA0003798166020000154
作为查询Q进行查询,得到提供相应的预测回报rt作为参考张量,然后基于表征张量z、查询Q和参考张量rt预测基于已配置计算资源份额30对应的预估CPU利用率,如为50%。也就是说,t时刻的预估CPU利用率与t-1时刻的CPU利用率产生了较大改变。为了保持CPU利用率的稳定,预估CPU利用率50%可以用于计算资源配置份额的调整决策。参考张量rt和表征张量z分别可以看作针对第一编码网络和第二编码网络的编码结果的解码结果,因此,图5中确定参考张量rt和表征张量z并预估CPU利用率的实现网络可以记为任务解码器。
以上过程描述了单个应用对应时间t(第一时刻/时间段)的预估CPU利用率
Figure BDA0003798166020000155
的过程,实践中,可以通过类似的原理预测各个应用在目标周期的第一时刻/时间段对应的预估CPU利用率。
如此,该步骤301对应到图2中的CPU利用率预测模块,可以具有两方面的输出:各个应用的CPU利用率的预测值;表征张量z。其中,表征张量z作为全局概率潜在表示,其可以被视为在给定上下文信息的情况下嵌入任务的编码显著信息的任务。换句话说,表征张量z可以指示所面临的任务。
在神经网络训练过程中,目标周期可以对应有已知的真实CPU利用率,通过CPU利用率的预测值与真实值的比较,可以确定相应模型损失,从而向模型损失减小的方向调整如图5中的第一编码网络、第二编码网络、第三编码网络及解码网络等中的参数值,以对CPU利用率预测模块进行训练。
接着,基于步骤302,将各个应用的预估CPU利用率、表征向量、各个应用在目标周期内的估计流量序列输入决策网络,由决策网络的输出结果确定第一时刻/时间段的当前计算资源配置策略。
其中,计算资源配置策略可以是云端计算资源针对各个应用的分配方式。以计算资源以虚拟机实例数为单位为例,资源配置策略可以描述出为各个应用分配的计算机数量。资源配置策略可以以向量形式输出,例如为(30,80,100,50……),其中,向量的各个维度分别对应各个应用,如第一维度的30表示为应用1分配30台计算机,以此类推。在强化学习架构下,决策网络的输出结果通常描述在当前状态下做出的动作action,当前状态可以通过当前为各个应用配置的计算资源份额(即前一次调整后的资源配置策略lt)、估计流量序列中对应的流量值
Figure BDA0003798166020000161
表征向量z、预估CPU利用率
Figure BDA0003798166020000162
描述。假设前一次调整后的计算资源配置策略lt为(30,80,100,50……),决策网络输出的动作(输出结果)例如可以为(3,-5,2,5……),则表示,为第一应用增加3个虚拟机实例,为第二应用减少5个虚拟机实例……。基于决策网络提供的动作,可以调整资源配置策略为(33,75,102,55……)。
由于决策网络对动作的决策结果(即输出结果)依赖于前一次调整后的资源配置策略lt,因此,决策网络的输入数据除了包括预估CPU利用率
Figure BDA0003798166020000163
表征向量z、各个应用在目标周期内对应的估计流量序列中对应的流量值
Figure BDA0003798166020000164
还可以包括前一次调整后的计算资源配置策略lt。也就是说,决策网络的输入数据对应着当前状态s,将状态s所在空间看作四维空间,则状态s可以用四元组
Figure BDA0003798166020000165
描述。在可选的实施例中,估计流量值
Figure BDA0003798166020000166
作为决策网络的输入,可以用各个应用在目标周期内与t对应的处理特征ut和估计流量值
Figure BDA0003798166020000167
的拼接张量代替。决策网络可以通过各种神经网络形式实现,例如全连接神经网络等。如图6示出了一个全连接神经网络形式的决策网络。决策网络可以对各种输入信息进行融合并得到相应的计算资源配置策略,如at
在本说明书的技术构思下,可以基于强化学习理论来调整计算资源配置策略。如图6所示,在基于强化学习原理的调整过程中,决策网络可以是强化学习的智能体的一部分,并且还可以参考前一次的计算资源配置结果。
进一步地,在步骤303,通过预先确定的策略评估网络评估当前计算资源配置策略带来的长期回报,从而以最大化长期回报为目标调整决策网络的输出结果从而调整当前资源配置策略。
对于决策网络的输出结果(如调整动作),还可以通过价值函数对其带来的回报进行评估。根据强化学习的目标,逐渐增加计算资源份额,在一定时间内尽可能保持CPU利用率的稳定,并尽可能少增加计算资源份额调整的转换成本。为此,价值函数的设计可以考虑两个方面:当前计算资源配置策略下的CPU利用率和目标CPU利用率之间的差距;计算资源份额(如虚拟机实例数)调整的转换成本。为此,根据一个具体例子,可以对该差距和对该成本的惩罚进行加权,从而获得最大回报的过程中可以减少以上差距,以及计算资源调整的转换成本。如,通过价值函数累积的长期回报为:rt:=-(c[t,t+1)-ctarget)2-η(lt+1-lt)2。其中,η为平衡加权项的超参数可以预先设定,目标CPU利用率ctarget可以是预设值,如40%。如此,可以使得策略适用于现实世界设置。在通过调整后的计算资源分配策略确定相应的CPU利用率
Figure BDA0003798166020000171
的情况下,由
Figure BDA0003798166020000172
代替c[t,t+1),并利用lt+1=lt(1+at),长期回报rt可以简化为:
Figure BDA0003798166020000173
鉴于CPU利用率
Figure BDA0003798166020000174
是状态s和动作a的函数,可以看出,长期回报rt针对各部分模型参数是可微分的,也就是可以通过梯度调整的。
通过前文可知,决策网络提供的策略与状态相关,如记为决策网络at=πψ(st),其中,Ψ为决策网络的参数,而状态的改变依赖于前一次决策的策略以及当前状态,如记为动态模型st+1=g(st,at),四元组中长期回报rt与状态s和动作a相关,如记为回报模型r(st,at),则价值函数记为
Figure BDA0003798166020000175
在决策过程中,可以依次根据估计流量序列中的H个元素分别构建查询Q,从而累计长期回报。针对H个元素中的单个元素,强化学习的过程就是以长期回报最大化为目标调整参数Ψ的过程。在st通过前文的四元组
Figure BDA0003798166020000176
Figure BDA0003798166020000177
描述的情况下,z,
Figure BDA0003798166020000178
经由CPU利用率预测模块中的神经网络确定,其任务表征z可能有偏差,而
Figure BDA0003798166020000179
与表征向量z相关,因此,还可以通过调整与任务表征z相关的神经网络,以及基于表征向量z预测
Figure BDA00037981660200001710
的网络,以达到最大化长期回报的目的。
为了调整计算资源配置策略,可以通过至少调整编码解码得到表征向量的神经网络,从而重复步骤301、步骤302、步骤303。通常,在模型训练阶段,可以将每个应用的CPU利用率、对应计算资源配置份额作为决策标签,并基于决策对应的CPU利用率与目标CPU利用率之间的差距及调整计算资源份额的成本确定策略评估网络的评估标签,从而确定模型损失。然后以模型损失减小为目标,调整计算CPU利用率预测模块②、伸缩决策模块③中各个模型参数。在模型训练完成后,决策网络的参数Ψ确定下来,可以以最大化基于策略评估模块的长期回报为目标,调整表征向量z对应的网络参数,从而调整表征向量z,使得表征向量z更好地表征任务类别,进而调整决策网络的输出结果,从而通过前向传递调整计算资源配置策略。
如此,经由在强化学习的技术构思下,反复调整计算资源配置策略,可以确定更满足需求的资源配置策略。进一步地,在长期回报满足预定条件的情况下,停止强化学习的反复调整过程。这里的预定条件例如是长期回报收敛。如,多个调整周期内的变化均值小于接近与0的预定值q。此时,可以根据决策网络输出的调整策略确定当前计算资源配置策略,并将该策略用于各个应用的计算资源配置份额配置。
以上过程描述了对应第一时刻/时间段(如对应时刻t)的计算资源配置的过程,实践中,可以通过改变时刻t,从而预测应用在目标周期的不同时间点/时间段的计算资源配置方案。
回顾以上过程,基于流量预测和强化学习的决策结合的构思,在流量时序预测基础上,进行各种应用的计算资源配置。其中,在配置过程中,一方面,基于表征向量对各个应用进行表征,使得计算资源配置方案具有迁移能力,即使面对新应用,也可以基于表征向量适用相应的流量与CPU利用率的关系,另一方面,基于强化学习的策略评估机制,以目标CPU利用率为目标确定长期回报,从而在最大化长期回报基础上对计算资源配置的决策结果进行调整,使得计算资源配置方案尽可能以较小的成本接近目标CPU利用率。该计算资源配置的技术方案,可以实现大规模的在线应用扩缩容场景,为云计算提供更有效的扩缩容机制。
根据另一方面的实施例,还提供一种计算资源的配置装置,用于为多个应用在目标周期内配置计算资源。该装置可以设于云端的资源配置服务器。图7示出了根据一个实施例的计算资源的配置装置700。如图7所示,装置700包括:
流量预测单元701,配置为根据多个应用各自在n个历史周期的n个历史流量序列,预测各个应用各自在目标周期内的估计流量序列;
资源利用率预测单元702,配置为针对目标周期中的各个时刻/时间段,基于各个应用在目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率;
决策单元703,配置为将各个应用的预估CPU利用率、表征向量、各个应用在目标周期内的估计流量序列输入决策网络,由决策网络的输出结果确定当前时刻/时间段的当前计算资源配置策略;
评估单元704,配置为通过预先确定的策略评估网络评估当前计算资源配置策略带来的长期回报,从而以长期回报最大化为目标调整当前资源配置策略,其中,长期回报基于当前计算资源配置策略下的CPU利用率与预设的目标CPU利用率的差距确定。
根据一个可能的设计,装置700还可以包括资源配置单元(未示出),配置为:
在长期回报满足预定条件的情况下,按照当前计算资源配置策略为各个应用在目标周期中的当前时刻/时间段进行资源配置。
值得说明的是,以上装置700可以对应图3的方法实施例相对应,因此,针对图3的方法实施例中的描述同样适用于装置700,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3等所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3等所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。

Claims (16)

1.一种计算资源的配置方法,用于为多个应用在目标周期内配置计算资源,针对所述目标周期中的第一时刻/时间段,所述方法包括:
基于各个应用在所述目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率,其中,各个应用各自在所述目标周期内的估计流量序列,预先根据多个应用各自在n个历史周期的n个历史流量序列进行预测;
将各个应用的预估CPU利用率、表征向量、各个应用在所述目标周期内的估计流量序列输入决策网络,由所述决策网络的输出结果确定所述第一时刻/时间段的当前计算资源配置策略;
通过预先确定的策略评估网络评估当前计算资源配置策略带来的长期回报,从而以最大化所述长期回报为目标调整所述决策网络的输出结果从而调整当前资源配置策略,其中,所述长期回报基于当前计算资源配置策略下的CPU利用率与预设的目标CPU利用率的差距确定。
2.如权利要求1所述的方法,其中,在各个周期,各个应用还各自对应有处理特征,所述处理特征包括时间特征和数据更新特征中的至少一项,单个应用的估计流量序列基于n个历史周期的n个历史流量序列及处理特征进行预测。
3.如权利要求2所述的方法,其中,所述针对单个应用,在所述目标周期内的估计流量序列通过以下方式进行预测:
将n个历史流量序列各自与相应的处理特征按照第一融合方式进行融合,得到n个第一融合张量;
通过n个第一融合张量提取基于n个历史流量序列的流量周期特征;
基于所述流量周期特征与所述目标周期的处理特征,预测该单个应用在所述目标周期内的单个估计流量序列。
4.如权利要求1所述的方法,其中,所述第一融合方式为嵌入,所述根据多个应用各自在n个历史周期的n个历史流量序列,预测各个应用各自在所述目标周期内的估计流量序列包括:
对该单个应用在所述目标周期内的处理特征按照所述第一融合方式进行嵌入,得到第一嵌入张量;
将所述第一嵌入张量中的元素作为查询Q的输入,所述流量周期特征同时作为键K和值V的输入,通过多头注意力机制进行处理得到所述单个估计流量序列。
5.如权利要求2所述的方法,其中,所述基于各个应用在所述目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率包括:
将各个估计流量序列分别与相应应用的处理特征按时间维度对应拼接,得到各个拼接张量;
基于各个拼接张量确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率。
6.如权利要求5所述的方法,其中,单个应用的表征向量通过以下方式确定:
对该单个应用对应的拼接张量添加满足标准高斯分布的扰动,得到相应的扰动张量;
通过自注意力机制的第二编码网络处理所述扰动张量在时间维度的各个元素,并基于对得到的各个第二编码结果的拼接,得到对所述扰动张量的第二编码张量;
解码所述第二编码张量,得到该单个应用的表征向量。
7.如权利要求5所述的方法,其中,单个应用基于前一时刻/时间段已配置计算资源份额的预估CPU利用率通过以下方式确定:
通过自注意力机制的第一编码网络处理该单个应用对应的拼接张量在时间维度的各个元素,得到各个第一编码结果;
将所述拼接张量的各个元素作为键K,各个第一编码结果作为值V,在所述拼接张量中与所述第一时刻/时间段对应的元素作为查询Q输入的情况下,通过交叉注意力机制的第三编码网络确定相应回报作为参考张量;
通过解码网络处理所述表征向量、所述参考张量、所述拼接张量中作为查询Q输入的相应元素,预测单个应用的预估CPU利用率。
8.如权利要求1所述的方法,其中,所述计算资源通过虚拟机实例表示,所述计算资源配置策略包括为各个应用分配的虚拟机实例数。
9.如权利要求1所述的方法,其中,所述决策网络的输入还包括基于前一次决策的计算资源配置份额以及目标周期的处理特征,所述决策网络的输出结果为针对各个应用的计算资源调整份额,所述当前计算资源配置策略基于在前一次计算资源配置策略基础上按照各个应用的计算资源调整份额进行调整确定。
10.如权利要求9所述的方法,其中,所述长期回报与所述差距及计算资源调整份额的转换成本均为负相关。
11.如权利要求1所述的方法,其中,所述以最大化所述长期回报为目标调整当前资源配置策略包括:
以所述最大化所述长期回报为目标调整各个应用的表征向量;
基于调整后的表征向量,确定预估CPU利用率,并根据调整后的表征向量、预估CPU利用率,由所述决策网络进行决策从而确定当前计算资源配置策略。
12.如权利要求1所述的方法,其中,所述方法还包括:
在所述长期回报满足预定条件的情况下,按照当前计算资源配置策略为各个应用在所述目标周期中的第一时刻/时间段进行资源配置。
13.一种计算资源的配置装置,用于为多个应用在目标周期内配置计算资源,所述装置包括:
流量预测单元,配置为根据多个应用各自在n个历史周期的n个历史流量序列,预测各个应用各自在所述目标周期内的估计流量序列;
资源利用率预测单元,配置为针对所述目标周期中的各个时刻/时间段,基于各个应用在所述目标周期内的估计流量序列,确定各个应用各自的表征向量以及基于前一时刻/时间段已配置计算资源份额的预估CPU利用率;
决策单元,配置为将各个应用的预估CPU利用率、表征向量、各个应用在所述目标周期内的估计流量序列输入决策网络,由所述决策网络的输出结果确定当前时刻/时间段的当前计算资源配置策略;
评估单元,配置为通过预先确定的策略评估网络评估当前计算资源配置策略带来的长期回报,从而以所述长期回报最大化为目标调整当前资源配置策略,其中,所述长期回报基于当前计算资源配置策略下的CPU利用率与预设的目标CPU利用率的差距确定。
14.如权利要求13所述的装置,其中,所述装置还包括资源配置单元,配置为:
在所述长期回报满足预定条件的情况下,按照当前计算资源配置策略为各个应用在所述目标周期中的当前时刻/时间段进行资源配置。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。
CN202210974427.6A 2022-08-15 2022-08-15 计算资源的配置方法及装置 Pending CN115357339A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210974427.6A CN115357339A (zh) 2022-08-15 2022-08-15 计算资源的配置方法及装置
US18/450,036 US20240054020A1 (en) 2022-08-15 2023-08-15 Computing resource configuration methods and apparatuses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210974427.6A CN115357339A (zh) 2022-08-15 2022-08-15 计算资源的配置方法及装置

Publications (1)

Publication Number Publication Date
CN115357339A true CN115357339A (zh) 2022-11-18

Family

ID=84034013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210974427.6A Pending CN115357339A (zh) 2022-08-15 2022-08-15 计算资源的配置方法及装置

Country Status (2)

Country Link
US (1) US20240054020A1 (zh)
CN (1) CN115357339A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116385071A (zh) * 2023-06-05 2023-07-04 支付宝(杭州)信息技术有限公司 针对多个推荐场景的资源弹性调度方法和装置
CN117130765A (zh) * 2023-01-16 2023-11-28 荣耀终端有限公司 计算资源的配置方法和电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130765A (zh) * 2023-01-16 2023-11-28 荣耀终端有限公司 计算资源的配置方法和电子设备
CN117130765B (zh) * 2023-01-16 2024-05-07 荣耀终端有限公司 计算资源的配置方法和电子设备
CN116385071A (zh) * 2023-06-05 2023-07-04 支付宝(杭州)信息技术有限公司 针对多个推荐场景的资源弹性调度方法和装置

Also Published As

Publication number Publication date
US20240054020A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
CN115357339A (zh) 计算资源的配置方法及装置
CN110264270B (zh) 一种行为预测方法、装置、设备和存储介质
Li et al. Efficient resource scaling based on load fluctuation in edge-cloud computing environment
Liu et al. Integrating artificial bee colony algorithm and BP neural network for software aging prediction in IoT environment
Wang et al. An adaptive data placement architecture in multicloud environments
CN116627630A (zh) 资源需求预测模型训练、需求预测和资源调度方法及系统
Golshani et al. Proactive auto-scaling for cloud environments using temporal convolutional neural networks
CN113435935B (zh) 权益推送的方法及装置
Lepenioti et al. Human-augmented prescriptive analytics with interactive multi-objective reinforcement learning
Stankovic et al. Forecasting ethereum price by tuned long short-term memory model
Al-Sayed Workload time series cumulative prediction mechanism for cloud resources using neural machine translation technique
CN113610299A (zh) 基于特征衰减强化神经网络的信息传播预测方法及装置
Casimiro et al. A probabilistic model checking approach to self-adapting machine learning systems
Liu et al. Hidden markov model based spot price prediction for cloud computing
Iqbal et al. Forecasting stock market using machine learning approach encoder-decoder ConvLSTM
WO2019207826A1 (ja) マルチエージェントによる情報処理のための装置、方法、およびプログラム
Feng et al. Heterogeneity-aware Proactive Elastic Resource Allocation for Serverless Applications
Huang et al. Accurate Prediction of Required Virtual Resources via Deep Reinforcement Learning
US20230177117A1 (en) Enhanced Reinforcement Learning Algorithms Using Future State Prediction
Liang et al. A Reinforcement Learning Approach for Dynamic Rebalancing in Bike-Sharing System
Laforet et al. An ensemble technique for better decisions based on data streams and its application to data privacy
US20230229998A1 (en) Methods and systems for asset management using customized calculation module
Cabrera Redondo Artificial Intelligence Applied to Demand Forecasting
Jiang Algorithm Designs for the Optimization of Resource Allocation in Networked Systems
Al-Sayed Workload Time Series Cumulative Prediction Mechanism for Cloud Resources Using Neural Machine Translation

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