CN116467068A - 资源调度方法、设备及存储介质 - Google Patents

资源调度方法、设备及存储介质 Download PDF

Info

Publication number
CN116467068A
CN116467068A CN202310268473.9A CN202310268473A CN116467068A CN 116467068 A CN116467068 A CN 116467068A CN 202310268473 A CN202310268473 A CN 202310268473A CN 116467068 A CN116467068 A CN 116467068A
Authority
CN
China
Prior art keywords
resource
workload
slo
working
target
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.)
Granted
Application number
CN202310268473.9A
Other languages
English (en)
Other versions
CN116467068B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202310268473.9A priority Critical patent/CN116467068B/zh
Publication of CN116467068A publication Critical patent/CN116467068A/zh
Application granted granted Critical
Publication of CN116467068B publication Critical patent/CN116467068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种资源调度方法、设备及存储介质。在待部署虚拟实例的目标SLO为资源复用型时,确定待调度工作负载可复用已分配给SLO比目标SLO高的其它工作负载的第一资源;根据工作节点对应的第一资源及该工作节点的未分配资源,确定工作节点上可供工作负载调度的第二资源;并根据各工作节点对应的第二资源和工作负载的资源请求量,从工作集群中确定目标工作节点;及在目标工作节点上部署相应的虚拟实例,使得低SLO的工作负载复用高SLO的工作负载的空闲资源,有助于降低高SLO的资源的闲置时间,且可使得工作节点中的其它空闲资源可分配给其它工作负载使用,有助于提高工作节点的资源利用率。

Description

资源调度方法、设备及存储介质
技术领域
本申请涉及云计算技术领域,尤其涉及一种资源调度方法、设备及存储介质。
背景技术
差异化服务等级目标(Service-Level Objective,SLO)混合部署,是指将不同类型的工作负载混合运行在同一节点,充分利用工作负载对资源SLO需求特征的不同,提升资源整体使用率。在差异化SLO混合部署方案中,如何实现资源调度是差异化SLO混合部署方案的关键技术问题。
发明内容
本申请的多个方面提供一种资源调度方法、设备及存储介质,用以实现差异化SLO混合部署的资源调度,有助于提高资源利用率。
本申请实施例提供一种资源调度方法,包括:
获取第一工作负载的虚拟实例调度请求;所述虚拟实例调度请求包括:资源请求量及所述第一工作负载的目标服务等级目标SLO;
在所述目标SLO为资源复用型的情况下,根据所述目标SLO适配的资源调度模型,从所述工作集群的工作节点上的第二工作负载的已分配资源中,确定所述工作节点上允许所述第一工作负载复用的第一资源;所述第二工作负载的SLO高于所述目标SLO;
根据所述工作节点上允许所述第一工作负载复用的第一资源及所述工作节点的未分配资源,确定所述工作节点上允许所述第一工作负载调度的第二资源;
根据所述工作集群的工作节点对应的第二资源和所述资源请求量,从所述工作集群的工作节点中确定第一目标工作节点;
在所述第一目标工作节点上利用满足所述资源请求量的目标资源,部署所述第一工作负载的虚拟实例。
本申请实施例还提供一种计算设备,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器及所述通信组件,用于执行所述计算机程序以用于执行上述资源调度方法中的步骤。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述资源调度方法中的步骤。
在本申请实施例中,在待部署虚拟实例所属工作负载的目标SLO为资源复用型的情况下,可根据目标SLO适配的资源调度模型,从工作集群的工作节点上SLO比目标SLO高的其它工作负载的已分配资源中,确定工作节点上可供工作负载复用的第一资源;之后,可根据工作节点上可供工作负载复用的第一资源及该工作节点的未分配资源,确定工作节点上可供工作负载调度的第二资源;并根据工作集群中各工作节点对应的第二资源和工作负载的资源请求量,从工作集群中确定目标工作节点;之后,可在目标工作节点上部署工作负载的虚拟实例,使得低SLO的工作负载复用已分配给高SLO的工作负载的空闲资源,有助于降低高SLO的资源的闲置时间,提高资源利用率。另一方面,低SLO的工作负载复用高SLO的工作负载的空闲资源,使得工作节点中的其它空闲资源可分配给其它工作负载使用,有助于进一步提高工作节点的资源利用率。
此外,根据目标SLO适配的资源调度模型进行资源调度,可使得工作负载调度到的资源符合相应SLO的要求,有助于保障工作负载提供服务的延时满足服务类型的需求,进而有助于保障工作负载的服务质量。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种计算系统的结构示意图;
图2为本申请实施例提供的工作节点的资源分配情况示意图;
图3为本申请实施例提供的计算系统的结构框架示意图;
图4为本申请实施例提供的资源调度方法的流程示意图;
图5为本申请实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一些实施例中,在待部署虚拟实例所属工作负载的目标SLO为资源复用型的情况下,可根据目标SLO适配的资源调度模型,从工作集群的工作节点上SLO比目标SLO高的其它工作负载的已分配资源中,确定工作节点上可供工作负载复用的第一资源;之后,可根据工作节点上可供工作负载复用的第一资源及该工作节点的未分配资源,确定工作节点上可供工作负载调度的第二资源;并根据工作集群中各工作节点对应的第二资源和工作负载的资源请求量,从工作集群中确定目标工作节点;之后,可在目标工作节点上部署工作负载的虚拟实例,使得低SLO的工作负载复用已分配给高SLO的工作负载的空闲资源,有助于降低高SLO的资源的闲置时间,提高资源利用率。另一方面,低SLO的工作负载复用高SLO的工作负载的空闲资源,使得工作节点中的其它空闲资源可分配给其它工作负载使用,有助于进一步提高工作节点的资源利用率。
此外,根据目标SLO适配的资源调度模型进行资源调度,可使得工作负载调度到的资源符合相应SLO的要求,有助于保障工作负载提供服务的延时满足服务类型的需求,进而有助于保障工作负载的服务质量。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图1为本申请实施例提供的一种计算系统的结构示意图。如图1所示,计算系统包括:管控节点10和工作集群20。工作集群20包括:多个工作节点(Workers)201。多个是指2个或2个以上。
管控节点10是指可以进行工作节点管理,可响应用户端30的服务请求,通过调度工作节点201为用户提供计算服务的计算机设备,一般具备承担服务并保障服务的能力。管控节点10可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)、容器等。另外,服务端设备也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。在本实施例中,管控节点10可部署于云端,例如边缘云系统的中心云中。
工作节点201是指提供计算资源的计算机设备。关于工作节点201的具体实现形态,可参见管控节点10的实现形态,在此不再赘述。在本实施例中,工作节点201除了提供计算资源之外,还可提供其他硬件资源和软件资源。其中,硬件资源可包括:处理器等计算资源,内存、磁盘等存储资源及输入/输出(Input/Output,IO)资源等。其中,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和/或现场可编程门阵列(Field-Programmable Gate Array,FPGA)等等。工作节点201可部署于中心云中,也可实现为边缘云网络中的边缘节点等。
其中,管控节点10和工作节点201之间可以是无线或有线连接。可选地,服工作节点201可以通过移动网络和工作节点201通信连接,相应地,移动网络的网络制式可以为2G(如全球移动通信系统(Global System for Mobile Communications,GSM)等)、2.5G(如,通用无线分组服务(General Packet Radio Service,GPRS)等)、3G(如宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、时分同步码分多址(TimeDivision-Synchronous Code Division Multiple Access,TD-SCDMA)、码分多址2000(Code Division Multiple Access 2000,CDMA2000)、通用移动通信系统(UniversalMobile Telecommunications System,UTMS)等)、4G(如长期演进(Long Term Evolution,LTE)等)、4G+(如升级版长期演进(LTE-Advanced,LTE-A)等)、5G、全球微波接入互操作性(World Interoperability for Microwave Access,WiMax)等中的任意一种。可选地,工作节点201也可以通过蓝牙、无线保真(Wireless Fidelity,WiFi)、红外线等方式和管控节点10通信连接。
在本实施例中,为了提高工作集群的资源利用率,提出差异化服务等级目标(Service-Level Objective,SLO)混合部署方案。其中,SLO可包括:工作负载的资源的优先级(Priority)和服务质量(Quality of Service,QoS)。其中,优先级描述了不同工作负载之间保障资源使用的先后次序。例如,在同时接收到多种工作负载的部署请求时,优先为优先级高的工作负载进行资源调度。资源优先级可表示工作负载被调度的顺序和满足资源需求的顺序,优先级同时关联了相应的资源调度模型。QoS用于描述工作负载所使用物理资源的质量。QoS等级越高,使用的物理资源的质量越高。一般地,具有高优先级的工作负载,也具有较高的QoS。
差异化SLO,是指将不同类型的工作负载混合运行在同一节点,充分利用工作负载对资源SLO需求特征的不同,提升资源整体使用效率。差异化SLO混部可以进一步提升大工作集群的容器部署密度,提高集群资源利用率。
在差异化SLO的工作负载混合部署场景下,如何对不同SLO的工作负载进行统一资源调度,实现集群维度的资源管控,成为差异化SLO混合部署的关键技术问题。
在本实施例中,SLO可包括:资源复用型的SLO和资源独享型的SLO。资源独享型的SLO是指该SLO对应的工作负载之间不共享资源,也不主动与其它SLO等级的SLO共享资源。
资源复用型的SLO对应的工作负载,可复用比该工作负载的SLO高的工作负载的已分配资源中的未使用部分。资源独享型的SLO高于资源复用型的SLO。资源复用型的SLO可具有一个SLO等级,也可具有多个SLO等级。多个是指2个或2个以上。工作负载的SLO与工作负载提供的计算或服务对计算延迟时间的要求有关。
下面以资源调度的SLO中的优先级为4种优先级为例,对工作负载的SLO对应的服务类型进行示例性说明。在一些实施例中,SLO中的优先级可分为:生产(Product,Prod)优先级、中间(Middle,Mid)优先级、批处理(Batch)优先级和Free(空闲)等4种优先级。这4种优先级的优先级顺序依次从高到低。
其中,Prod优先级,适用于延时敏感的在线工作负载使用,比如在线服务。Prod级别的工作负载可调度全部物理资源,可调度资源不超出工作节点的物理容量,且不复用已分配的空闲物理资源。可调度资源是指工作节点上允许工作负载调度的资源。
Mid优先级适用于需要较稳定资源的工作负载。比如,人工智能(ArtificialIntelligence,AI)模型训练、实时计算作业等。Mid级别的工作负载可调度更高优先级(如Prod)未分配的物理资源,以及高优先级已分配但长期未使用的物理资源。资源容量在长周期内稳定,能够复用高优先级的工作负载长期空闲的物理资源。
Batch优先级适用于批处理作业等离线计算工作负载。例如,周期性(如天级、周级或月级等)数据报表及非实时交互式数据查询等。Batch优先级的工作负载,可调度更高优先级(如Prod和Mid)未分配的物理资源,以及更高优先级已分配但短期未使用的物理资源。资源容量在短周期内稳定,能够复用更高优先级短期空闲的物理资源。
Free优先级适用于低优先级的离线计算工作负载,比如测试作业等。Free优先级可调度节点全部未使用的物理资源,包含了所有已分配资源中未使用的物理资源。资源容量不保障稳定,Free优先级能够复用所有空闲物理资源,包括自身优先级分配但未使用的资源。
在本申请实施例中,QoS也可包括多种QoS等级。例如,在一些实施例中,QoS等级可分为:延迟敏感(Latency Sensitive,LS)性等级的QoS和尽力交付(Best Effort,BE)等级的QoS。其中,根据对延迟的敏感程度不同,延迟敏感等级又可分为系统(System)等级、延迟敏感且资源预留(Latency Sensitive Reserved,LSR)等级和延迟敏感(LatencySensitive,LS)等级。系统等级、LSR、LS及BE对应的QoS质量依次降低。
其中,系统等级为系统组件使用的等级,可约束资源使用上限。系统组件或系统服务的运行延时比较敏感,需要较高的质量保障,需要限制使用的资源上限,不过多占用工作负载的资源。
LSR等级,不与除BE等级之外的其它工作负载共享物理资源,用于高保障的延迟敏感型工作负载。
LS等级,可支持资源共享,常用于微服务等在线工作负载,具备更高的资源共享和弹性调节能力。
BE等级,可共享物理资源,通常用于批处理作业等离线工作负载。
QoS用于表征工作负载所使用物理资源的质量,保障等级较高的QoS具有更好的资源确定性,等级较低的QoS具有更好的资源弹性。较高QoS等级的工作负载通过与QoS等级较低的工作负载混合部署在一起,能够在满足资源质量的同时,更充分地复用物理资源。
每个工作负载的调度可按照资源容量的弹性和资源质量的稳定性,声明优先级和QoS的组合,作为该工作负载的SLO。优先级和QoS为正交的两个维度,可以排列组合使用。根据实际需求,对于系统等级和LSR对应的优先级为Prod;LS可使用上述4种优先级中的任意一种,优选使用Prod。BE可使用Mid、Batch和Free中的任意一种,优选使用Batch。
SLO的优先级决定了工作负载的资源调度优先级,及工作负载是否支持资源复用。因此,在超卖资源调度中,重点根据SLO中的优先级进行资源调度。下面针对本申请实施例提供的资源调度方式进行示例性说明。
如图1所示,在本实施例中,用户端30在请求工作负载时,可发起针对该工作负载的虚拟实例调度请求。在本实施例中,虚拟实例是指可提供计算资源的计算实体,可为虚拟机(VM)、容器组(如Pod)或容器等。用户端30可声明该工作负载的目标SLO。相应地,虚拟实例调度请求可包括:工作负载的声明。工作负载的声明包括:工作负载的SLO及资源请求量等。在一些实施例中,工作负载的声明还可包括:实例副本数(如pod副本数)、调度亲和性规则、容忍度规则、标签(Label)以及调度优先级等。
在本实施例中,工作负载的声明重点包括:工作负载的SLO及资源请求量。管控节点10可以虚拟实例为资源调度维度,对工作负载进行资源调度。基于此,管控节点10可获取工作负载的虚拟实例调度请求。该虚拟实例调度请求可包括:资源请求量及工作负载的目标SLO。
SLO可分为资源复用型(如上述Mid、Batch、和Free对应的SLO)和资源独享型(如上述Prod对应的SLO)。在本实施例中,为了提高资源利用率,可在目标SLO为资源复用型的情况下,根据目标SLO适配的资源调度模型,从工作集群20的各工作节点201上的其它高SLO的工作负载的已分配资源中,确定虚拟实例调度请求对应的工作负载在各工作节点201的可复用资源,即各工作节点201上虚拟实例调度请求对应的工作负载复用的资源(定义为第一资源)。第一资源为虚拟实例调度请求对应的工作负载能够在工作节点201上复用已分配给其它高SLO的工作负载的资源量。
在本申请实施例中,为了便于描述和区分,将虚拟实例调度请求对应的工作负载,定义为第一工作负载;并将工作节点201上部署的SLO比第一工作负载的目标SLO高的其它工作负载,定义为第二工作负载。在本实施例中,一个SLO比另一个SLO高,主要是指SLO中的优先级较高。
在本申请实施例中,不限定SLO适配的资源调度模型的具体形式。下面结合图2示出的工作节点的资源分配示意图,对不同SLO,对应的资源调度模型,及根据资源调度模型确定可复用资源的实施方式进行示例性说明。
在图2中,横轴表示时间,纵轴表示节点的资源量。最上方的水平的实线直线1表示工作节点的可调度资源总量。工作节点的可调度资源总量等于该工作节点的资源总量,减去该节点的资源预留量。工作节点的预留资源可用于系统组件(如内核线程、系统服务等)等资源开销,这部分资源不在管控节点10调度统计范围内。工作节点可调度资源总量可表示为:
Na=Ncap-Nres (1)。
在式(1)中,Na表示工作节点的可调度资源总量;Ncap表示工作节点的资源容量,即资源总量;Nres表示工作节点的预留资源量。
在图2中,实线直线1下方的点状虚线2表示工作节点的已分配资源量。最下方的锯齿状实线5表示工作节点的实际资源用量。锯齿状实线5上方的矩形状的实线4表示工作节点短期的预测资源用量,其中,每个梯度表示一个预测时间窗口。短线状虚线3表示工作节点长期的预测资源用量。一个长期的预测时间窗口包括多个短期的预测时间窗口。关于时间窗口的确定方式将在下文实施例中进行描述,在此不再赘述。
如图2所示,对于第一资源复用型的SLO,其工作负载的可调度资源(即工作节点上允许该工作负载调度的资源)为:工作节点的可调度资源总量(实线直线1),减去工作节点的长期预测资源用量(短线状虚线3),即实线直线1与短线状虚线3之间的资源。第二资源复用型的SLO,其工作负载的可调度资源为:工作节点的可调度资源总量(实线直线1),减去工作节点的短期预测资源用量(矩形状的实线4),即实线直线1与矩形状的实线4之间的资源。第三资源复用型的SLO,其工作负载的可调度资源为:工作节点的可调度资源总量(实线直线1),减去工作节点的实际资源用量(锯齿状实线5),即实线直线1与锯齿状实线5之间的资源。其中,工作负载的可调用资源是指工作节点上允许该工作负载调度的资源。
其中,第一资源复用型、第二资源复用型和第三资源复用型的SLO依次降低。对于上述Prod、Mid、Batch、和Free的优先级模型,第一资源复用型对应的优先级可为Mid等级;第二资源复用型对应的优先级可为Batch等级;第三资源复用型对应的优先级可为Free等级。
根据上述图2示出的工作节点的资源调度示意图,可以得到对于资源复用型的资源调度模型,可以分为:第一类资源调度模型和第二类资源调度模型。第一类资源调度模型的SLO高于第二类资源调度模型的SLO。其中,第一类资源调度模型在确定上述工作节点201上允许第一工作负载复用的第一资源时,利用的是工作节点的预测资源用量;第二类资源调度模型在确定工作节点201上允许第一工作负载复用的的第一资源时,利用的是工作节点的实际资源用量。相应地,第一类资源调度模型对应的SLO可包括:第一资源复用型的SLO(如Mid等)和第二资源复用型的SLO(如Batch等);第二类资源调度模型对应的SLO包括:第三资源调度模型的SLO(如Free等)。
在一些实施例中,第一工作负载的目标SLO适配的资源调度模型为第一类资源调度模型。相应地,针对工作集群20中的任一工作节点201,管控节点10在确定工作节点201上允许第一工作负载复用的第一资源时,可获取工作节点201上第二工作负载与目标SLO适配的预测资源用量的时间序列。对于资源复用型的目标SLO对应的第一工作负载,第二工作负载是指SLO比目标SLO高的工作负载。例如,对于Mid级的第一工作负载,第二工作负载可以为Prod级的SLO对应的工作负载;对于Batch级的第一工作负载,第二工作负载可包括:Prod级的SLO对应的工作负载和Mid级的SLO对应的工作负载。
其中,预测资源用量的时间序列是指工作节点201上第二工作负载的预测资源用量随时间变化的关系。预测资源用量的时间序列一般是基于工作节点上第二工作负载的历史资源用量确定的。历史资源用量可为从工作节点启动至接收到当前虚拟实例调度请求期间的历史资源用量。
例如,图2中的短线状虚线3和矩形状的实线4均为工作节点上第二工作负载的预测资源用量的时间序列。第一资源复用型的SLO适配的预测资源用量的时间序列,可表现为短线状虚线3;第一资源复用型的SLO适配的预测资源用量的时间序列,可表现为矩形状的实线4。
在本申请实施例中,不限定管控节点10获取工作节点上第二工作负载与目标SLO适配的预测资源用量的时间序列的具体实施方式。
在一些实施例中,管控节点10可在线确定工作节点上第二工作负载与目标SLO适配的预测资源用量的时间序列。具体地,管控节点10可从采集的工作节点上第二工作负载的历史资源用量中,获取第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量。其中,第二工作负载的历史资源用量的采集时长大于或等于时间窗口。高SLO适配的时间窗口大于低SLO适配的时间窗口。
例如,如图2所示,第一资源复用型对应的SLO高于第二资源复用型对应的SLO,则第一资源复用型对应的SLO(如Mid级)适配的第一时间窗口,大于第二资源复用型对应的SLO(如Batch级)适配的第二时间窗口。第一时间窗口可包括:多个第二时间窗口。多个是指2个或2个以上。多个第二时间窗口可能相同,也可能不同,或者部分相同等。
结合图3示出的计算系统的结构框架示意图,工作节点201可部署代理组件201a。其中,代理组件201a用于采集工作节点201的资源节点指标。工作节点201的节点指标可包括:工作节点201的资源利用率及工作节点201上各工作负载的资源利用率。进一步,代理组件201a可将工作节点201的节点指标,上报至管控节点10中的应用编程接口(ApplicationProgramming Interface,API)服务组件103。
管控节点10可从API服务组件103存储的节点指标中,获取工作节点201上第二工作负载在上述采集时长内的资源利用率;并根据工作节点201上第二工作负载的已分配资源量和第二工作负载在上述采集时长内的资源利用率,确定工作节点201上第二工作负载在采集时长的历史资源用量。
具体地,如图3所示,管控节点10中的控制器102,可从API服务组件103中,获取工作节点201上第二工作负载在上述采集时长内的资源利用率;并执行上述确定作节点201上第二工作负载在采集时长的历史资源用量的操作。
进一步,管控节点10(如管控节点10中的控制器102)可从采集的工作节点201上第二工作负载的历史资源用量中,获取第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量。其中,SLO越高,适配的时间窗口越大。
在一些实施例中,可预先配置SLO适配的时间窗口。SLO越高,适配的时间窗口越大。基于此,管控节点10(具体为管控节点10中的控制器102)可将工作节点201上第二工作负载的历史资源用量,划分为目标SLO适配的至少一个时间窗口,进而得到第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量。
在另一些实施例中,管控节点10可自适应调整SLO适配的时间窗口。可选地,管控节点10(具体为管控节点10中的控制器102)可根据工作节点201上第二工作负载的历史资源用量随时间的波动情况,确定目标SLO适配的至少一个时间窗口。不同时间窗口的时长可能相同,也可不同。其中,SLO越高,适配的时间窗口越大。例如,在图2中,矩形状的实线4中每个矩形窗口即为1个时间窗口。短线状虚线3中整条直线对应的时间,即为1个时间窗口。
进一步,管控节点10可从第二工作负载的历史资源用量中,获取第二工作负载在每个时间窗口的历史资源用量,即为第二工作负载在目标SLO适配的时间窗口的历史资源用量。
针对任一时间窗口A,管控节点10可根据第二工作负载在时间窗口A的历史资源用量,确定第二工作负载在时间窗口A的预测资源用量。第二工作负载在时间窗口A的历史资源用量,小于或等于第二工作负载在时间窗口A的已分配资源。
具体地,管控节点10(具体为管控节点10中的控制器102)可根据第二工作负载在时间窗口A的历史资源用量,对第二工作负载进行资源画像,以得到第二工作负载在时间窗口A的资源画像。对于控制器102还可将工作负载在时间窗口的资源画像,作为工作负载指标,更新至API服务组件103。
可选地,管控节点10(具体为管控节点10中的控制器102)可根据第二工作负载在时间窗口A的历史资源用量,确定第二工作负载在时间窗口A的资源用量峰值;进一步,可在资源用量峰值的基础上增加设定的资源余量,作为第二工作负载在时间窗口A的资源画像。相应地,可确定资源用量峰值的基础上增加设定的资源余量,作为第二工作负载在时间窗口A的预测资源量。
在确定第二工作负载在各时间窗口的预测资源用量之后,管控节点10(具体为管控节点10中的控制器102)可根据第二工作负载在各时间窗口的预测资源用量,确定第二工作负载在目标SLO适配的预测资源用量的时序序列。其中,第二工作负载在每个时间窗口的预测资源用量,即为第二工作负载在该时间窗口的预测资源用量的时序序列。
如图3所示,上述实施例中确定第二工作负载在目标SLO适配的预测资源用量的时序序列的具体实施方式,可由管控节点10中的控制器102执行。控制器102主要用于维护工作负载的资源画像,并基于工作负载的资源画像,确定工作负载在工作节点上的预测资源用量的时序序列。
对于控制器102在确定出工作负载在工作节点上的预测资源用量的时序序列之后,可将工作负载在工作节点上的预测资源用量的时序序列,作为工作负载指标,更新至API服务组件103。相应地,API服务组件103可存储工作节点上各SLO的工作负载对应的预测资源用量的时间序列,即工作节点对应的SLO与预测资源用量的时间序列之间的对应关系。
相应地,管控节点10可从预先存储的工作节点201对应的SLO与预测资源用量的时间序列之间的对应关系中,获取工作节点201与目标SLO适配的预测资源用量的时间序列。
在对工作负载进行资源调度时,需要调度到的目标工作节点在工作负载的任务的执行期间,保证工作负载的资源用量。基于此,在获取工作节点201上第二工作负载与目标SLO适配的预测资源用量的时间序列之后,管控节点10(具体为管控节点10中的控制器102)可获取第一工作负载的任务的预测执行时长。
在本申请实施例中,不限定获取第一工作负载的任务的预测执行时长的具体实施方式。在一些实施例中,第一工作负载的声明中可携带任务的预测执行时长。虚拟实例调度请求可包括:第一工作负载的任务的预测执行时长。相应地,管控节点10可从第一工作负载的虚拟实例调度请求中,获取第一工作负载的任务的预测执行时长。
在另一些实施例中,管控节点10可预先设置SLO与预测执行时长之间的对应关系。相应地,管控节点10可利用第一工作负载的目标SLO,从预先设置的SLO与预测执行时长之间的对应关系中,获取目标SLO对应的预测执行时长,作为第一工作负载的任务的预测执行时长。
进一步,管控节点10可根据第一工作负载的任务的预测执行时长,从预测资源用量的时间序列中,获取预测执行时长适配的目标预测资源用量。其中,目标预测资源用量对应的时间窗口大于或等于预测执行时长,这样,可尽量保证在第一工作负载的任务执行期间,第一工作负载不与工作节点的其它工作负载存在资源竞争。
相应地,管控节点10可从预测资源用量的时间序列包括的至少一个时间窗口中,获取时间窗口大于或等于第一工作负载的任务的预测执行时长的目标时间窗口;并从目标时间窗口的预测资源用量中,获取目标预测资源用量。
在一些实施例中,目标时间窗口为1个,则可确定目标时间窗口的预测资源用量,为目标预测资源用量。在另一些实施例中,目标时间窗口为多个(2个或2个以上),则可从多个目标时间窗口的预测资源用量中,获取最大预测资源用量,作为目标预测资源用量。例如,在图2中,若第一工作负载的目标SLO为第二资源服务型的SLO,则预测资源用量的时序序列可为矩形状实线4,时间窗口可为T1-T6。假设第一工作负载的预测执行时长为T0,且矩形状实线4时间窗口T3、T4和T5均大于T0,则确定矩形状实线4时间窗口T3、T4和T5为目标时间窗口。进一步,时间窗口T3和T4的预测资源用量,均小于时间窗口T5的预测资源用量,因此,可获取时间窗口T5的预测资源用量为目标预测资源用量。
在确定出工作节点的目标预测资源用量之后,管控节点10(具体为管控节点10中的控制器102)可从工作节点201上第二工作负载的已分配资源中,减去目标预测资源用量,得到工作节点201上允许第一工作负载复用的的第一资源。具体地,如图3所示,管控节点10中的控制器102还可工作节点201上允许第一工作负载复用的的第一资源,更新至API服务组件103。
由于第二工作负载是指SLO比目标SLO高的工作负载,第二工作负载可以为SLO比目标SLO高的任何工作负载。对于第一资源复用型的SLO,第二工作负载为资源独享型的SLO对应的工作负载。相应地,在第一工作负载为第一资源复用型的SLO对应的工作负载时,工作节点201上允许第一工作负载复用的的第一资源为:工作节点201上资源独享型的SLO对应的工作负载在时间窗口A的已分配资源(如图2中点状虚线2所示的已分配资源),减去工作节点201上资源独享型的SLO对应的工作负载在时间窗口A的目标预测资源用量(如图2短线状曲线3所示的长期预测资源用量)。
例如,第一资源复用型的SLO的优先级为Mid级,则工作节点上允许Mid级的工作负载调度的第二资源可表示为:
Mida=Ncap-Nres-Nsys-use-Produse-l (2)。
在式(2)中,Mida表示工作节点上允许Mid级的工作负载调度的第二资源;Nsys-use表示工作节点上除工作负载的资源用量之外的其它资源用量;Produse-l表示工作节点上资源独享型Prod的工作负载在时间窗口(较长时间窗口)的目标预测资源用量,如资源独享型Prod的长期预测资源用量。
相应地,工作节点201上允许Mid级的工作负载复用的的第一资源可表示为:
Midreuse=Prodreq-Produse-l (3)。
在式(3)中,Midreuse表示工作节点201上允许Mid级的工作负载复用的的第一资源;Prodreq表示工作节点上资源独享型Prod的工作负载的已分配资源,即Prod的工作负载的资源请求量。
对于第二资源复用型的SLO,第二工作负载包括:资源独享型的SLO对应的工作负载和第一资源复用型的SLO对应的工作负载。相应地,在第一工作负载为第二资源复用型的SLO对应的工作负载时,工作节点201上允许第一工作负载复用的的第一资源为:工作节点201上资源独享型的SLO对应的工作负载在时间窗口A的已分配资源,和该工作节点201上第一资源复用型的SLO对应的工作负载在时间窗口A的已分配资源之和(如图2中点状虚线2所示的已分配资源),减去工作节点201上第一资源复用型和第二资源复用型的工作负载目标预测资源用量(如图2矩形状曲线4所示的短期预测资源用量)。
例如,第二资源复用型的SLO的优先级为Batch级,则工作节点上允许Batch级的工作负载调度的第二资源可表示为:
Batcha=Ncap-Nres-Nsys-use-Prod/Miduse-s (4)。
在式(4)中,Batcha表示工作节点上允许Batch级的工作负载调度的第二资源;Prod/Miduse-s表示在工作节点上资源独享型Prod和第一资源复用型Mid的工作负载在时间窗口(短时间窗口)的目标预测资源用量,如资源独享型Prod和第一资源复用型Mid的短期预测资源用量。
相应地,工作节点201上允许Batch级的工作负载复用的的第一资源可表示为:
Batchreuse=Prod/Midreq-Prod/Miduse-s (5)。
在式(4)中,Batchreuse表示工作节点201上允许Batch级的工作负载复用的的第一资源;Prod/Midreq表示工作节点上资源独享型Prod和第一资源复用型Mid的工作负载的已分配资源,即Prod和Mid的工作负载的资源请求量。
上述实施例以第一资源复用型和第二资源复用型的SLO为例,对工作节点201上允许第一工作负载复用的第一资源的实施方式,进行示例性说明,但不构成限定。
在一些实施例中,虚拟实例调度请求携带的目标SLO为第三资源复用型对应的SLO。相应地,目标SLO适配的资源调度模型为第二类资源调度模型。该SLO的工作负载可复用工作节点中所有未使用资源。
相应地,针对目标SLO为第三资源复用型对应的SLO的实施例,管控节点10可从工作节点201上的第二工作负载的已分配资源中,确定未使用资源(定义为第一未使用资源)。对于第三资源复用型的SLO,第二工作负载包括:SLO比第三资源复用型的SLO高的所有工作负载,即包括:资源独享型的SLO的工作负载、第一资源复用型的SLO的工作负载及第二资源复用型的SLO的工作负载。
进一步,可从工作节点201上已部署的目标SLO的工作负载的已分配资源中,确定未使用资源(定义为第二未使用资源)。进一步,可确定第一未使用资源和第二未使用资源,为工作节点201上允许目标SLO的第一工作负载复用的第一资源。
例如,第三资源复用型的SLO的优先级为Free级,则工作节点上允许Free级的工作负载调度的第二资源可表示为:
Freea=Ncap-Nres-Nuse (6)。
在式(6)中,Freea表示工作节点上允许Free级的工作负载调度的第二资源。Nuse表示工作节点的实时资源用量。
相应地,确定工作节点201上允许复用的第一资源可表示为:
Freereuse=Nreq-Nuse (7)。
在式(7)中,Freereuse表示确定工作节点201上允许Free级的工作负载复用的第一资源;Nreq表示工作节点上的已分配资源,即工作节点上的所有已分配资源,包括:比第三资源复用型Free高优先级的工作负载的已分配资源及同优先级(Free)的其它工作负载的已分配资源。
如图3所示,上述实施例中确定工作节点201上允许第一工作负载复用的第一资源,及确定工作节点允许第一工作负载调度的第二资源的具体实施方式,可由管控节点10中的控制器102执行。控制器102可将工作节点201上允许第一工作负载复用的第一资源,及确定工作节点允许第一工作负载调度的第二资源,更新至API服务组件103。
基于确定出的工作节点201上允许第一工作负载复用的第一资源,如图1所示,针对资源复用型的SLO,管控节点10可根据工作节点201上允许第一工作负载复用的第一资源及工作节点201的未分配资源,确定工作节点201上允许第一工作负载调度的第二资源。具体地,工作节点201上允许第一工作负载调度的第二资源,等于工作节点201上允许第一工作负载复用的第一资源及工作节点201的未分配资源之和。
在一些实施例中,虚拟实例调度请求携带的目标SLO为资源独享型。资源独享型不独占物理资源,不与其它工作负载共享物理资源。相应地,在目标SLO为资源独享型的情况下,管控节点10可根据工作节点201的资源总量和工作节点201的资源预留量,确定资源独享型的目标SLO的第一工作负载在工作节点201上的可调度资源(定义为第三资源)。具体地,工作节点201上允许资源独享型的目标SLO的第一工作负载调度的第三资源,可等于工作节点201的资源总量减去工作节点201的资源预留量。
例如,对于资源独享型的SLO中的优先级为Prod级的工作负载,工作节点201上允许Prod的工作负载调度的第二资源可表示为:
Proda=Ncap-Nres (8)。
在式(8)中,Proda是指工作节点201上允许Prod级的工作负载调度的第三资源。
上述实施例示例性给出了如何确定工作节点上允许目标SLO的第一工作负载调度的第二资源的实施方式。基于工作节点上允许目标SLO的第一工作负载调度的第二资源,管控节点10可根据工作集群的各工作节点201分别允许目标SLO的第一工作负载调度的第二资源和虚拟实例部署请求携带的资源请求量,从工作集群20的工作节点201中确定目标工作节点。
在确定出目标工作节点之后,管控节点10可在目标工作节点上,利用满足虚拟实例部署请求携带的资源请求量的目标资源,部署第一工作负载的虚拟实例。
上述确定目标工作节点及在目标工作节点上进行资源调度来部署虚拟实例的操作,可由管控节点10中的调度器101执行。
在本实施例中,在待部署虚拟实例所属工作负载的目标SLO为资源复用型的情况下,可根据目标SLO适配的资源调度模型,从工作集群的工作节点上SLO比目标SLO高的其它工作负载的已分配资源中,确定工作节点上可供工作负载复用的第一资源;之后,可根据工作节点上可供工作负载复用的第一资源及该工作节点的未分配资源,确定工作节点上可供工作负载调度的第二资源;并根据工作集群中各工作节点对应的第二资源和工作负载的资源请求量,从工作集群中确定目标工作节点;之后,可在目标工作节点上部署工作负载的虚拟实例,使得低SLO的工作负载复用已分配给高SLO的工作负载的空闲资源,有助于降低高SLO的资源的闲置时间,提高资源利用率。另一方面,低SLO的工作负载复用高SLO的工作负载的空闲资源,使得工作节点中的其它空闲资源可分配给其它工作负载使用,有助于进一步提高工作节点的资源利用率。
此外,根据目标SLO适配的资源调度模型进行资源调度,可使得工作负载调度到的资源符合相应SLO的要求,有助于保障工作负载提供服务的延时满足服务类型的需求,进而有助于保障工作负载的服务质量。
在本申请实施例中,不限定管控节点确定目标工作节点的具体实施方式。在一些实施例中,管控节点10可从工作集群20的工作节点201中,获取第二资源大于或等于资源请求量的工作节点,作为目标工作节点。
然而,在混合部署场景下,工作节点上的工作负载的资源请求量升高,可能分配了超出物理资源容量的资源,虽然提高了物理资源利用率,但也带来了资源过度使用(over-utilization)的风险,可能导致性能降级或容器因为内存溢出(Out of Memory Kill,OOM)而死亡(Kill)。
例如,对于500GiB内存的工作节点,通过资源独享型Prod资源的资源调度方式,已经全部分配给Prod的虚拟实例。由于Prod的虚拟实例尚未使用所有的已分配内存,因此这部分可回收的内存,又以Batch的资源调度方式分配给Batch的虚拟实例。此时,工作节点上分配给Prod的虚拟实例和Batch的虚拟实例的内存资源量,已超出工作节点的500Gi内存容量,一旦Prod的虚拟实例和Batch的虚拟实例有突增的内存使用,可能导致容器总体申请的内存超出系统上限,触发OOM Kill。这样,工作节点的内核将挑选虚拟实例强制删除,给虚拟实例对应的应用带来稳定性风险。
为了解决上述问题,在本申请一些实施例中,提供一种负载感知调度策略。下面对本申请实施例提供的负载感知策略进行示例性说明。
具体地,管控节点10可根据工作集群20的各工作节点201上允许目标SLO的第一工作负载调度的第二资源和资源请求量,从工作集群20的工作节点201中,确定第二资源大于或等于资源请求量的候选工作节点。候选工作节点的数量为1个或多个。多个是指2个或2个以上。
对于候选工作节点为1个的实施例,可将候选工作节点作为目标工作节点。对于候选工作节点为多个的实施例,管控节点10可获取候选工作节点的资源利用率;并根据候选工作节点的资源利用率,从候选工作节点中确定目标工作节点。
具体地,管控节点10可根据预先设置的资源调度策略和候选工作节点的资源利用率,从候选工作节点中确定目标工作节点。
例如,在一些实施例中,预先设置的资源调度策略为最少调度策略,则管控节点10可从候选工作节点中,确定资源利用率最低的候选工作节点为目标工作节点,可减少减小工作节点资源过度使用和物理资源超卖的风险。
在另一些实施例中,预先设置的资源调度策略为最多调度策略,则管控节点10可从候选工作节点中,确定资源利用率最高的候选工作节点为目标工作节点,可将待部署虚拟实例优先调度到资源分配较多的节点,可减少工作节点的资源分配碎片,有助于提高工作节点的资源利用率。
在又一些实施例中,预先设置的资源调度策略为负载均衡策略,则管控节点10可根据候选工作节点的资源利用率,采用负载均衡策略从候选工作节点中确定目标工作节点。例如,管控节点10可根据候选工作节点的资源利用率,从候选工作节点中,选择资源利用率与其它工作节点的资源利用率之间的差异大于设定的比例的候选工作节点,作为目标工作节点。之后,在目标工作节点上部署第一工作负载的虚拟实例,以使候选工作节点负载均衡。
需要说明的是,上述确定目标工作节点的实施方式仅为示例性说明,并不构成限定。
如图3所示,上述实施例中确定工作节点上允许目标SLO的第一工作负载调度的第二资源的具体实施方式,也可由管控节点10中的控制器102执行。控制器102在确定出工作节点201上允许目标SLO的第一工作负载调度的第二资源之后,可将工作节点201上允许目标SLO的第一工作负载调度的第二资源,存储至API服务组件103。这样,管控节点10中的调度器101可获取工作节点中的各工作节点上允许第一工作负载调度的第二资源,并进行资源调度。管控节点10中各组件的操作的具体实施方式,可参见上述管控节点10执行的具体内容,在此不再赘述。
在另一些实施例中,针对混合部署场景,管控节点10中的调度器101需要避免将低优先级工作负载不均匀地堆叠到个别工作节点上,导致该工作节点上高优先级的工作负载受到严重干扰的问题。为了优化节点间不同优先级工作负载的分布,规避热点问题。在一些实施例中,管控节点10还可根据第一工作负载的SLO中的QoS,对第一工作负载的虚拟实例进行调度优化。
可选地,管控节点10可根据第一工作负载的QoS,确定工作负载的CPU使用属性。CPU的使用属性可包括:资源独享型和资源复用型。进一步,可按照每种工作负载的CPU使用属性,为对待部署的第一工作负载的虚拟实例分配CPU。
针对独占使用属性的第一工作负载,可从上述确定出的目标工作节点中,确定满足第一工作负载的CPU资源需求的目标CPU核。
对于启用非统一内存访问(Non-uniform Memory Access,NUMA)架构的工作节点,管控节点10(如调度器101)可获取目标工作节点的物理资源拓扑信息。其中,目标工作节点的物理资源拓扑信息可包括:目标工作节点上物理资源的名称和拓扑结构。进一步,可根据物理资源拓扑信息,获取目标工作节点各CPU核之间的NUMA拓扑信息;并根据NUMA拓扑信息,从同一NUMA对应的CPU核中,确定满足上述待部署虚拟实例的资源请求量的目标CPU核。这样,在待部署虚拟实例申请多个CPU核时,考虑NUMA的局部性优势,优先从同一NUMA上分配CPU核,有助于缩短内存访问路径,提高内存访问效率。
进一步,可将目标CPU核与第一工作负载的虚拟实例进行绑定,以使得虚拟实例独享目标CPU核。
例如,在一些实施例中,对于QoS声明为LSR的工作负载的CPU使用属性为独享型,则管控节点10中的调度器101以CPU逻辑核为粒度,从目标工作节点的尚未被独占的CPU核中,为待部署的虚拟实例分配目标CPU核,不同LSR的虚拟实例之间所分配的CPU核互斥。这部分独占的CPU核组成工作节点上的CPU核绑定池。CPU核绑定池根据工作节点上已调度的LSR的虚拟实例的资源分配而动态变化。QoS为LS的虚拟实例可分配的CPU核与CPU核绑定池互斥。
对于CPU使用属性为资源复用型的第一工作负载,在进行资源调度时,管控节点10可排除掉目标工作节点上已被独占分配的CPU核,将其余核作为CPU共享池;将CPU共享池与第一工作负载的虚拟实例进行绑定,以使第一工作负载的虚拟实例共享CPU共享池的CPU资源。由于CPU共享池的CPU核数通常超出第一工作负载的虚拟实例所申请的CPU核数,因此,虚拟实例内应用程序能够获取更高的线程级并行性。
例如,对于QoS声明为LS的工作负载,调度器101可排除掉目标工作节点上已被独占分配的CPU核,将其余核作为CPU共享池,由LS的虚拟实例绑定CPU共享池。CPU共享池的CPU核数通常超出LS的虚拟实例所申请的核数,容器内应用程序能够获取更高的线程级并行性。
除了上述系统实施例之外,本申请实施例还提供资源调度方法,下面对本申请实施例提供的资源调度方法进行示例性说明。
图4为本申请实施例提供的资源调度方法的流程示意图。如图4所示,该方法主要包括:
401、获取第一工作负载的虚拟实例调度请求;虚拟实例调度请求包括:资源请求量及第一工作负载的目标服务等级目标SLO。
402、在目标SLO为资源复用型的情况下,根据目标SLO适配的资源调度模型,从工作集群的工作节点上的第二工作负载的已分配资源中,确定工作节点上允许第一工作负载复用的第一资源;第二工作负载的SLO高于目标SLO。
403、根据工作节点上允许第一工作负载复用的第一资源及工作节点的未分配资源,确定工作节点上允许第一工作负载调度的第二资源。
404、根据工作集群的工作节点对应的第二资源和资源请求量,从工作集群的工作节点中确定目标工作节点。
405、在第一目标工作节点上利用满足资源请求量的目标资源,部署第一工作负载的虚拟实例。
在本实施例中,SLO可包括:资源复用型的SLO和资源独享型的SLO。关于资源独享型的SLO和资源复用型SLO的描述,可参见上述系统实施例的相关内容,在此不再赘述。
SLO的优先级决定了工作负载的资源调度优先级,及工作负载是否支持资源复用。因此,在超卖资源调度中,重点根据SLO中的优先级进行资源调度。下面针对本申请实施例提供的资源调度方式进行示例性说明。
在本实施例中,用户端在请求工作负载时,可发起针对该工作负载的虚拟实例调度请求。在本实施例中,工作负载的声明重点包括:工作负载的SLO及资源请求量。管控节点可以虚拟实例为资源调度维度,对工作负载进行资源调度。基于此,在步骤401中,可获取工作负载的虚拟实例调度请求。该虚拟实例调度请求可包括:资源请求量及工作负载的目标SLO。
SLO可分为资源复用型(如上述Mid、Batch、和Free对应的SLO)和资源独享型(如上述Prod对应的SLO)。在本实施例中,为了提高资源利用率,可在目标SLO为资源复用型的情况下,在步骤402中,根据目标SLO适配的资源调度模型,从工作集群的各工作节点上的其它高SLO的工作负载的已分配资源中,确定工作节点上允许虚拟实例调度请求对应的工作负载复用的第一资源。
在本申请实施例中,为了便于描述和区分,将虚拟实例调度请求对应的工作负载,定义为第一工作负载;并将工作节点上部署的SLO比第一工作负载的目标SLO高的其它工作负载,定义为第二工作负载。在本实施例中,一个SLO比另一个SLO高,主要是指SLO中的优先级较高。
在本申请实施例中,不限定SLO适配的资源调度模型的具体形式。下面结合图2示出的工作节点的资源分配示意图,对不同SLO,对应的资源调度模型,及根据资源调度模型确定工作节点上允许第一工作负载复用的第一资源的实施方式进行示例性说明。
根据上述图2示出的工作节点的资源调度示意图,可以得到对于资源复用型的资源调度模型,可以分为:第一类资源调度模型和第二类资源调度模型。第一类资源调度模型的SLO高于第二类资源调度模型的SLO。其中,第一类资源调度模型在确定工作节点上允许第一工作负载复用的第一资源时,利用的是工作节点的预测资源用量;第二类资源调度模型在确定工作节点上允许第一工作负载复用的第一资源时,利用的是工作节点的实际资源用量。相应地,第一类资源调度模型对应的SLO可包括:第一资源复用型的SLO(如Mid等)和第二资源复用型的SLO(如Batch等);第二类资源调度模型对应的SLO包括:第三资源调度模型的SLO(如Free等)。
在一些实施例中,第一工作负载的目标SLO适配的资源调度模型为第一类资源调度模型。相应地,针对工作集群中的任一工作节点,在确定工作节点上允许第一工作负载复用的第一资源时,可获取工作节点上第二工作负载与目标SLO适配的预测资源用量的时间序列。对于资源复用型的目标SLO对应的第一工作负载,第二工作负载是指SLO比目标SLO高的工作负载。其中,预测资源用量的时间序列是指工作节点上第二工作负载的预测资源用量随时间变化的关系。
在本申请实施例中,不限定获取工作节点上第二工作负载与目标SLO适配的预测资源用量的时间序列的具体实施方式。
在一些实施例中,可在线确定工作节点上第二工作负载与目标SLO适配的预测资源用量的时间序列。具体地,可从采集的工作节点上第二工作负载的历史资源用量中,获取第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量。其中,第二工作负载的历史资源用量的采集时长大于或等于时间窗口。高SLO适配的时间窗口大于低SLO适配的时间窗口。
工作节点可部署代理组件。其中,代理组件用于采集工作节点的节点指标。工作节点的节点指标可包括:工作节点的资源利用率及工作节点上各工作负载的资源利用率。进一步,代理组件可将工作节点的节点指标,上报至管控节点中的API服务组件。
进一步,可从API服务组件存储的节点指标中,获取工作节点上第二工作负载在上述采集时长内的资源利用率;并根据工作节点上第二工作负载的已分配资源量和第二工作负载在上述采集时长内的资源利用率,确定工作节点上第二工作负载在采集时长的历史资源用量。
进一步,可从采集的工作节点上第二工作负载的历史资源用量中,获取第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量。其中,SLO越高,适配的时间窗口越大。
在一些实施例中,可预先配置SLO适配的时间窗口。SLO越高,适配的时间窗口越大。基于此,可将工作节点上第二工作负载的历史资源用量,划分为目标SLO适配的至少一个时间窗口,进而得到第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量。
在另一些实施例中,可自适应调整SLO适配的时间窗口。可选地,可根据工作节点上第二工作负载的历史资源用量随时间的波动情况,确定目标SLO适配的至少一个时间窗口。不同时间窗口的时长可能相同,也可不同。其中,SLO越高,适配的时间窗口越大。
进一步,可从第二工作负载的历史资源用量中,获取第二工作负载在每个时间窗口的历史资源用量,即为第二工作负载在目标SLO适配的时间窗口的历史资源用量。
针对任一时间窗口A,可根据第二工作负载在时间窗口A的历史资源用量,确定第二工作负载在时间窗口A的预测资源用量。第二工作负载在时间窗口A的历史资源用量,小于或等于第二工作负载在时间窗口A的已分配资源。
具体地,可根据第二工作负载在时间窗口A的历史资源用量,对第二工作负载进行资源画像,以得到第二工作负载在时间窗口A的资源画像。
可选地,可根据第二工作负载在时间窗口A的历史资源用量,确定第二工作负载在时间窗口A的资源用量峰值;进一步,可在资源用量峰值的基础上增加设定的资源余量,作为第二工作负载在时间窗口A的资源画像。相应地,可确定资源用量峰值的基础上增加设定的资源余量,作为第二工作负载在时间窗口A的预测资源量。
在确定第二工作负载在各时间窗口的预测资源用量之后,可根据第二工作负载在各时间窗口的预测资源用量,确定第二工作负载在目标SLO适配的预测资源用量的时序序列。其中,第二工作负载在每个时间窗口的预测资源用量,即为第二工作负载在该时间窗口的预测资源用量的时序序列。
在一些实施例中,预测资源用量的时序序列可为预先确定好并存储的。在确定出工作负载在工作节点上的预测资源用量的时序序列之后,可将工作负载在工作节点上的预测资源用量的时序序列,作为工作负载指标,更新至API服务组件。相应地,API服务组件可存储工作节点上各SLO的工作负载对应的预测资源用量的时间序列,即工作节点对应的SLO与预测资源用量的时间序列之间的对应关系。
相应地,可从预先存储的工作节点对应的SLO与预测资源用量的时间序列之间的对应关系中,获取工作节点与目标SLO适配的预测资源用量的时间序列。
在对工作负载进行资源调度时,需要调度到的目标工作节点在工作负载的任务的执行期间,保证工作负载的资源用量。基于此,可获取第一工作负载的任务的预测执行时长。
在本申请实施例中,不限定获取第一工作负载的任务的预测执行时长的具体实施方式。在一些实施例中,第一工作负载的声明中可携带任务的预测执行时长。虚拟实例调度请求可包括:第一工作负载的任务的预测执行时长。相应地,可从第一工作负载的虚拟实例调度请求中,获取第一工作负载的任务的预测执行时长。
在另一些实施例中,可预先设置SLO与预测执行时长之间的对应关系。相应地,可利用第一工作负载的目标SLO,从预先设置的SLO与预测执行时长之间的对应关系中,获取目标SLO对应的预测执行时长,作为第一工作负载的任务的预测执行时长。
进一步,可根据第一工作负载的任务的预测执行时长,从预测资源用量的时间序列中,获取预测执行时长适配的目标预测资源用量。其中,目标预测资源用量对应的时间窗口大于或等于预测执行时长,这样,可尽量保证在第一工作负载的任务执行期间,第一工作负载不与工作节点的其它工作负载存在资源竞争。
相应地,可从预测资源用量的时间序列包括的至少一个时间窗口中,获取时间窗口大于或等于第一工作负载的任务的预测执行时长的目标时间窗口;并从目标时间窗口的预测资源用量中,获取目标预测资源用量。
在一些实施例中,目标时间窗口为1个,则可确定目标时间窗口的预测资源用量,为目标预测资源用量。在另一些实施例中,目标时间窗口为多个(2个或2个以上),则可从多个目标时间窗口的预测资源用量中,获取最大预测资源用量,作为目标预测资源用量。
在获取工作节点上第二工作负载与目标SLO适配的预测资源用量的时间序列之后,可根据虚拟实例调度请求的时间戳信息,从该预测资源用量的时间序列中,获取时间戳对应的目标预测资源用量。
进一步,可从工作节点上第二工作负载的已分配资源中,减去目标预测资源用量,得到工作节点上允许第一工作负载复用的第一资源。
由于第二工作负载是指SLO比目标SLO高的工作负载,第二工作负载可以为SLO比目标SLO高的任何工作负载。对于第一资源复用型的SLO,第二工作负载为资源独享型的SLO对应的工作负载。相应地,在第一工作负载为第一资源复用型的SLO对应的工作负载时,工作节点上允许第一工作负载复用的第一资源为:工作节点上资源独享型的SLO对应的工作负载在时间窗口A的已分配资源,减去工作节点上资源独享型的SLO对应的工作负载在时间窗口A的目标预测资源用量。
对于第二资源复用型的SLO,第二工作负载包括:资源独享型的SLO对应的工作负载和第一资源复用型的SLO对应的工作负载。相应地,在第一工作负载为第二资源复用型的SLO对应的工作负载时,工作节点上允许第一工作负载复用的第一资源为:工作节点上资源独享型的SLO对应的工作负载在时间窗口A的已分配资源,和该工作节点上第一资源复用型的SLO对应的工作负载在时间窗口A的已分配资源之和(如图2中点状虚线2所示的已分配资源),减去工作节点上第一资源复用型和第二资源复用型的工作负载目标预测资源用量(如图2矩形状曲线4所示的短期预测资源用量)。
上述实施例以第一资源复用型和第二资源复用型的SLO为例,对确定工作节点上允许第一工作负载复用的第一资源的实施方式,进行示例性说明,但不构成限定。
在一些实施例中,虚拟实例调度请求携带的目标SLO为第三资源复用型对应的SLO。相应地,目标SLO适配的资源调度模型为第二类资源调度模型。该SLO的工作负载可复用工作节点中所有未使用资源。
相应地,针对目标SLO为第三资源复用型对应的SLO的实施例,可从工作节点上的第二工作负载的已分配资源中,确定未使用资源(定义为第一未使用资源)。对于第三资源复用型的SLO,第二工作负载包括:SLO比第三资源复用型的SLO高的所有工作负载,即包括:资源独享型的SLO的工作负载、第一资源复用型的SLO的工作负载及第二资源复用型的SLO的工作负载。
进一步,可从工作节点上已部署的目标SLO的工作负载的已分配资源中,确定未使用资源(定义为第二未使用资源)。进一步,可确定第一未使用资源和第二未使用资源,为工作节点上允许目标SLO的第一工作负载复用的第一资源。
基于确定出的工作节点上允许第一工作负载复用的第一资源,针对资源复用型的SLO,在步骤403中,可根据工作节点上允许第一工作负载复用的第一资源及工作节点的未分配资源,确定工作节点上允许第一工作负载调度的第二资源。具体地,工作节点上允许第一工作负载调度的第二资源,等于工作节点上允许第一工作负载复用的第一资源及工作节点的未分配资源之和。
在一些实施例中,虚拟实例调度请求携带的目标SLO为资源独享型。资源独享型不独占物理资源,不与其它工作负载共享物理资源。相应地,在目标SLO为资源独享型的情况下,可获取工作节点的资源使用量及工作节点上其它目标SLO的工作负载的已分配资源中的未使用资源。
进一步,可根据工作节点的资源总量和工作节点的资源预留量,确定工作节点上允许资源独享型的目标SLO的第一工作负载调度的第二资源。
上述实施例示例性给出了如何确定工作节点上允许目标SLO的第一工作负载调度的第二资源的实施方式。基于工作节点上允许目标SLO的第一工作负载调度的第二资源,在步骤404中,可根据工作集群的工作节点对应的第二资源和虚拟实例部署请求携带的资源请求量,从工作集群的工作节点中确定目标工作节点。其中,工作节点对应的第二资源,是指该工作节点上允许第一工作负载调度的第二资源。
在确定出目标工作节点之后,在步骤405中,可在目标工作节点上,利用满足虚拟实例部署请求携带的资源请求量的目标资源,部署第一工作负载的虚拟实例。
在本实施例中,在待部署虚拟实例所属工作负载的目标SLO为资源复用型的情况下,可根据目标SLO适配的资源调度模型,从工作集群的工作节点上SLO比目标SLO高的其它工作负载的已分配资源中,确定工作节点上可供工作负载复用的第一资源;之后,可根据工作节点上可供工作负载复用的第一资源及该工作节点的未分配资源,确定工作节点上可供工作负载调度的第二资源;并根据工作集群中各工作节点对应的第二资源和工作负载的资源请求量,从工作集群中确定目标工作节点;之后,可在目标工作节点上部署工作负载的虚拟实例,使得低SLO的工作负载复用已分配给高SLO的工作负载的空闲资源,有助于降低高SLO的资源的闲置时间,提高资源利用率。另一方面,低SLO的工作负载复用高SLO的工作负载的空闲资源,使得工作节点中的其它空闲资源可分配给其它工作负载使用,有助于进一步提高工作节点的资源利用率。
此外,根据目标SLO适配的资源调度模型进行资源调度,可使得工作负载调度到的资源符合相应SLO的要求,有助于保障工作负载提供服务的延时满足服务类型的需求,进而有助于保障工作负载的服务质量。
在本申请实施例中,不限定管控节点确定目标工作节点的具体实施方式。在一些实施例中,可从工作集群的工作节点中,获取对应的第二资源大于或等于资源请求量的工作节点,作为目标工作节点。
然而,在混合部署场景下,工作节点上的工作负载的资源请求量升高,可能分配了超出物理资源容量的资源,虽然提高了物理资源利用率,但也带来了资源过度使用的风险,可能导致性能降级或容器因为OOM而死亡(Kill)。
为了解决上述问题,在本申请一些实施例中,提供一种负载感知调度策略。下面对本申请实施例提供的负载感知策略进行示例性说明。
具体地,可根据工作集群的工作节点对应的第二资源和资源请求量,从工作集群20的工作节点中,确定对应的第二资源大于或等于资源请求量的候选工作节点。候选工作节点的数量为1个或多个。多个是指2个或2个以上。
对于候选工作节点为1个的实施例,可将候选工作节点作为目标工作节点。对于候选工作节点为多个的实施例,可获取候选工作节点的资源利用率;并根据候选工作节点的资源利用率,从候选工作节点中确定目标工作节点。
具体地,可根据预先设置的资源调度策略和候选工作节点的资源利用率,从候选工作节点中确定目标工作节点。
例如,在一些实施例中,预先设置的资源调度策略为最少调度策略,则可从候选工作节点中,确定资源利用率最低的候选工作节点为目标工作节点,可减少减小工作节点资源过度使用和物理资源超卖的风险。
在另一些实施例中,预先设置的资源调度策略为最多调度策略,则可从候选工作节点中,确定资源利用率最高的候选工作节点为目标工作节点,可将待部署虚拟实例优先调度到资源分配较多的节点,可减少工作节点的资源分配碎片,有助于提高工作节点的资源利用率。
在又一些实施例中,预先设置的资源调度策略为负载均衡策略,则可根据候选工作节点的资源利用率,采用负载均衡策略从候选工作节点中确定目标工作节点。例如,可根据候选工作节点的资源利用率,从候选工作节点中,选择资源利用率与其它工作节点的资源利用率之间的差异大于设定的比例的候选工作节点,作为目标工作节点。之后,在目标工作节点上部署第一工作负载的虚拟实例,以使候选工作节点负载均衡。
需要说明的是,上述确定目标工作节点的实施方式仅为示例性说明,并不构成限定。
在另一些实施例中,针对混合部署场景,调度器需要避免将低优先级工作负载不均匀地堆叠到个别工作节点上,导致该工作节点上高优先级的工作负载受到严重干扰的问题。为了优化节点间不同优先级工作负载的分布,规避热点问题。在一些实施例中,还可根据第一工作负载的SLO中的QoS,对第一工作负载的虚拟实例进行调度优化。
可选地,可根据第一工作负载的QoS,确定工作负载的CPU使用属性。CPU的使用属性可包括:资源独享型和资源复用型。进一步,可按照每种工作负载的CPU使用属性,为对待部署的第一工作负载的虚拟实例分配CPU。
针对独占使用属性的第一工作负载,可从上述确定出的目标工作节点中,确定满足第一工作负载的CPU资源需求的目标CPU核。
对于启用非统一内存访问(Non-uniform Memory Access,NUMA)架构的工作节点,可获取目标工作节点的物理资源拓扑信息。其中,目标工作节点的物理资源拓扑信息可包括:目标工作节点上物理资源的名称和拓扑结构。进一步,可根据物理资源拓扑信息,获取目标工作节点各CPU核之间的NUMA拓扑信息;并根据NUMA拓扑信息,从同一NUMA对应的CPU核中,确定满足上述待部署虚拟实例的资源请求量的目标CPU核。这样,在待部署虚拟实例申请多个CPU核时,考虑NUMA的局部性优势,优先从同一NUMA上分配CPU核,有助于缩短内存访问路径,提高内存访问效率。
进一步,可将目标CPU核与第一工作负载的虚拟实例进行绑定,以使得虚拟实例独享目标CPU核。
对于CPU使用属性为资源复用型的第一工作负载,在进行资源调度时,可排除掉目标工作节点上已被独占分配的CPU核,将其余核作为CPU共享池;将CPU共享池与第一工作负载的虚拟实例进行绑定,以使第一工作负载的虚拟实例共享CPU共享池的CPU资源。由于CPU共享池的CPU核数通常超出第一工作负载的虚拟实例所申请的CPU核数,因此,虚拟实例内应用程序能够获取更高的线程级并行性。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401和402的执行主体可以为设备A;又比如,步骤401的执行主体可以为设备A,步骤402的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述资源调度方法中的步骤。
图5为本申请实施例提供的计算设备的结构示意图。如图5所示,该计算设备包括:存储器50a、处理器50b和通信组件50c。其中,存储器50a,用于存储计算机程序。
处理器50b耦合至存储器50a及通信组件50c,用于执行计算机程序以用于:获取第一工作负载的虚拟实例调度请求;虚拟实例调度请求包括:资源请求量及第一工作负载的目标服务等级目标SLO;在目标SLO为资源复用型的情况下,根据目标SLO适配的资源调度模型,从工作集群的工作节点上的第二工作负载的已分配资源中,确定工作节点上允许第一工作负载复用的第一资源;第二工作负载的SLO高于目标SLO;根据工作节点上允许第一工作负载复用的第一资源及工作节点的未分配资源,确定工作节点上允许第一工作负载调度的第二资源;根据工作集群的工作节点对应的第二资源和资源请求量,从工作集群的工作节点中确定第一目标工作节点;在第一目标工作节点上利用满足资源请求量的目标资源,部署第一工作负载的虚拟实例。
在一些实施例中,目标SLO适配的资源调度模型为第一类资源调度模型。处理器50b在从工作集群的工作节点上的第二工作负载的已分配资源中,确定工作节点上允许第一工作负载复用的第一资源时,具体用于:针对工作集群中的任一工作节点,获取任一工作节点上第二工作负载与目标SLO适配的预测资源用量的时间序列;获取第一工作负载的任务的预测执行时长;从预测资源用量的时间序列中,获取该预测执行时长适配的目标预测资源用量;从任一工作节点上第二工作负载的已分配资源中,减去目标预测资源用量,得到上述任一工作节点上允许第一工作负载复用的第一资源。
其中,第一类资源调度模型包括:第一资源复用型对应的资源调度模型和第二资源复用型对应的资源调度模型;目标SLO为第一资源复用型或第二资源复用型;第一资源复用型对应的SLO高于第二资源复用型对应的SLO;第一资源复用型对应的SLO适配的第一时间窗口包括:多个第二时间窗口;第二时间窗口为第二资源复用型对应的SLO。
在一些实施例中,处理器50b在确定第一工作负载的任务的预测执行时长时,具体用于:从虚拟实例调度请求中,获取预测执行时长;或者,从预先设置的SLO与执行时长之间的对应关系中,获取目标SLO对应的执行时长,作为预测执行时长。
在另一些实施例中,预测资源用量的时间序列包括:至少一个时间窗口的预测资源用量。相应地,处理器50b在从所述预测资源用量的时间序列中,获取预测执行时长适配的目标预测资源用量时,具体用于:从预测资源用量的时间序列包括的至少一个时间窗口中,获取时间窗口大于或等于预测执行时长的目标时间窗口;从目标时间窗口的预测资源用量中,获取目标预测资源用量。
在本申请一些实施例中,处理器50b在获取任一工作节点与目标SLO适配的预测资源用量的时间序列时,具体用于:从预先存储的任一工作节点对应的SLO与预测资源用量的时间序列之间的对应关系中,获取任一工作节点与目标SLO适配的预测资源用量的时间序列。
或者,处理器50b获取任一工作节点与目标SLO适配的预测资源用量的时间序列时,具体用于:从采集的任一工作节点上第二工作负载的历史资源用量中,获取第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量;第二工作负载的历史资源用量的采集时长大于或等于时间窗口;高SLO适配的时间窗口大于低SLO适配的时间窗口;针对任一时间窗口,根据第二工作负载在任一时间窗口的历史资源用量,确定第二工作负载在任一时间窗口的预测资源用量;第二工作负载在任一时间窗口的历史资源用量,小于或等于第二工作负载在任一时间窗口的已分配资源;以及,根据第二工作负载在至少一个时间窗口的预测资源用量,确定第二工作负载与目标SLO适配的预测资源用量的时序序列。
可选地,处理器50b在根据第二工作负载在任一时间窗口的历史资源用量,确定第二工作负载在任一时间窗口的预测资源用量时,具体用于:根据第二工作负载在任一时间窗口的历史资源用量,对第二工作负载进行资源画像,以得到第二工作负载在任一时间窗口的资源画像;根据第二工作负载在任一时间窗口的资源画像,确定第二工作负载在任一时间窗口的预测资源量。
进一步,处理器50b在根据第二工作负载在任一时间窗口的历史资源用量,对第二工作负载进行资源画像时,具体用于:根据第二工作负载在任一时间窗口的历史资源用量,确定第二工作负载在任一时间窗口的资源用量峰值;在资源用量峰值的基础上增加设定的资源余量,作为第二工作负载在任一时间窗口的资源画像。
相应地,处理器50b在根据第二工作负载在任一时间窗口的资源画像,确定第二工作负载在任一时间窗口的预测资源量时,具体用于:确定在资源用量峰值的基础上增加设定的资源余量,作为第二工作负载在任一时间窗口的预测资源量。
在一些实施例中,处理器50b在从采集的任一工作节点上第二工作负载的历史资源用量中,获取第二工作负载在目标SLO适配的至少一个时间窗口的历史资源用量时,具体用于:根据第二工作负载的历史资源用量随时间的波动情况,确定目标SLO适配的至少一个时间窗口;至少一个时间窗口相同或不同;从第二工作负载的历史资源用量中,获取第二工作负载在至少一个时间窗口的历史资源用量。
在另一些实施例中,目标SLO适配的资源调度模型为第二类资源调度模型。处理器50b在从工作集群的工作节点上的第二工作负载的已分配资源中,确定工作节点上允许第一工作负载复用的第一资源时,具体用于:针对工作集群中的任一工作节点,从任一工作节点上的第二工作负载的已分配资源中,确定第一未使用资源;从任一工作节点上已部署的目标SLO的工作负载的已分配资源中,确定第二未使用资源;以及,确定第一未使用资源和第二未使用资源,为上述任一工作节点上允许第一工作负载复用的第一资源。
可选地,处理器50b在根据工作集群的工作节点对应的第二资源和资源请求量,从工作集群的工作节点中确定第一目标工作节点时,具体用于:根据工作集群的工作节点对应的第二资源和资源请求量,从工作集群的工作节点中,确定对应的第二资源大于或等于资源请求量的候选工作节点;获取候选工作节点的资源利用率;根据候选工作节点的资源利用率,从候选工作节点中确定第一目标工作节点。
进一步,处理器50b在根据候选工作节点的资源利用率,从候选工作节点中确定第一目标工作节点时,具体用于:从候选工作节点中,确定资源利用率最低的候选工作节点为第一目标工作节点;或者,从候选工作节点中,确定资源利用率最高的候选工作节点为第一目标工作节点;或者,根据候选工作节点的资源利用率,采用负载均衡策略从候选工作节点中确定第一目标工作节点。
在本申请一些实施例中,处理器90b还用于:在目标SLO为资源独享型的情况下,针对工作集群中的任一工作节点,根据任一工作节点的资源总量和任一工作节点的资源预留量,确定任一工作节点上允许第一工作负载调度的第三资源;资源独享型的SLO高于资源复用型的SLO;根据工作集群中各工作节点上允许第一工作负载调度的第三资源和资源请求量,从工作集群的工作节点中确定第二目标工作节点;在第二目标工作节点,利用满足资源请求量的目标资源部署第一工作负载的虚拟实例。
关于确定第二目标工作节点的具体实施方式,可参见上述确定第一目标工作节点的相关内容,在此不再赘述。
在一些可选实施方式中,如图5所示,该计算设备还可以包括:电源组件50d等组件。在一些实施例中,计算设备可实现为手机、电脑等终端设备。相应地,计算设备还可包括:显示组件50e和音频组件50f等可选组件。图5中仅示意性给出部分组件,并不意味着计算设备必须包含图5所示全部组件,也不意味着计算设备只能包括图5所示组件。
本实施例提供的计算设备,在待部署虚拟实例所属工作负载的目标SLO为资源复用型的情况下,可根据目标SLO适配的资源调度模型,从工作集群的工作节点上SLO比目标SLO高的其它工作负载的已分配资源中,确定工作节点上可供工作负载复用的第一资源;之后,可根据工作节点上可供工作负载复用的第一资源及该工作节点的未分配资源,确定工作节点上可供工作负载调度的第二资源;并根据工作集群中各工作节点对应的第二资源和工作负载的资源请求量,从工作集群中确定目标工作节点;之后,可在目标工作节点上部署工作负载的虚拟实例,使得低SLO的工作负载复用已分配给高SLO的工作负载的空闲资源,有助于降低高SLO的资源的闲置时间,提高资源利用率。另一方面,低SLO的工作负载复用高SLO的工作负载的空闲资源,使得工作节点中的其它空闲资源可分配给其它工作负载使用,有助于进一步提高工作节点的资源利用率。
此外,根据目标SLO适配的资源调度模型进行资源调度,可使得工作负载调度到的资源符合相应SLO的要求,有助于保障工作负载提供服务的延时满足服务类型的需求,进而有助于保障工作负载的服务质量。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random-Access Memory,SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM),可擦除可编程只读存储器(Electrical Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable Read Only Memory,PROM),只读存储器(Read Only Memory,ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(Reduced Instruction Set Compute,RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip,SoC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还可基于近场通信(Near Field Communication,NFC)技术、射频识别(Radio Frequency Identification,RFID)技术、红外数据协会(Infrared Data Association,IrDA)技术、超宽带(Ultra WideBand,UWB)技术、蓝牙(Bluetooth,BT)技术或其他技术来实现。
在本申请实施例中,显示组件可以包括液晶显示器(Liquid Crystal Display,LCD)和触摸面板(Touch Panel,TP)。如果显示组件包括触摸面板,显示组件可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(Microphone,MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的设备,可通过音频组件实现与用户的语音交互等。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU等)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(Random-Access Memory,RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(Digital Video Disc,DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上内容仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种资源调度方法,其特征在于,包括:
获取第一工作负载的虚拟实例调度请求;所述虚拟实例调度请求包括:资源请求量及所述第一工作负载的目标服务等级目标SLO;
在所述目标SLO为资源复用型的情况下,根据所述目标SLO适配的资源调度模型,从工作集群的工作节点上的第二工作负载的已分配资源中,确定所述工作节点上允许所述第一工作负载复用的第一资源;所述第二工作负载的SLO高于所述目标SLO;
根据所述工作节点上待被所述第一工作负载复用的第一资源及所述工作节点的未分配资源,确定所述工作节点上允许所述第一工作负载调度的第二资源;
根据所述工作集群的工作节点对应的第二资源和所述资源请求量,从所述工作集群的工作节点中确定第一目标工作节点;
在所述第一目标工作节点上利用满足所述资源请求量的目标资源,部署所述第一工作负载的虚拟实例。
2.根据权利要求1所述的方法,其特征在于,所述目标SLO适配的资源调度模型为第一类资源调度模型;所述从所述工作集群的工作节点上的第二工作负载的已分配资源中,确定所述工作节点上允许所述第一工作负载复用的第一资源,包括:包括:
针对所述工作集群中的任一工作节点,获取所述任一工作节点上所述第二工作负载与所述目标SLO适配的预测资源用量的时间序列;
获取所述第一工作负载的任务的预测执行时长;
从所述预测资源用量的时间序列中,获取所述预测执行时长适配的目标预测资源用量;
从所述任一工作节点上所述第二工作负载的已分配资源中,减去所述目标预测资源用量,得到确定所述任一工作节点上允许所述第一工作负载复用的第一资源。
3.根据权利要求2所述的方法,其特征在于,所述获取所述任一工作节点与所述目标SLO适配的预测资源用量的时间序列,包括:
从预先存储的所述任一工作节点对应的SLO与预测资源用量的时间序列之间的对应关系中,获取所述任一工作节点与所述目标SLO适配的预测资源用量的时间序列。
4.根据权利要求2所述的方法,其特征在于,所述获取所述任一工作节点与所述目标SLO适配的预测资源用量的时间序列,包括:
从采集的所述任一工作节点上所述第二工作负载的历史资源用量中,获取所述第二工作负载在所述目标SLO适配的至少一个时间窗口的历史资源用量;所述第二工作负载的历史资源用量的采集时长大于或等于所述时间窗口;高SLO适配的时间窗口大于低SLO适配的时间窗口;
针对任一时间窗口,根据所述第二工作负载在所述任一时间窗口的历史资源用量,确定所述第二工作负载在所述任一时间窗口的预测资源用量;所述第二工作负载在所述任一时间窗口的历史资源用量,小于或等于所述第二工作负载在所述任一时间窗口的已分配资源;
根据所述第二工作负载在所述至少一个时间窗口的预测资源用量,确定所述第二工作负载与所述目标SLO适配的预测资源用量的时序序列。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第二工作负载在所述任一时间窗口的历史资源用量,确定所述第二工作负载在所述任一时间窗口的预测资源用量,包括:
根据所述第二工作负载在所述任一时间窗口的历史资源用量,对所述第二工作负载进行资源画像,以得到所述第二工作负载在所述任一时间窗口的资源画像;
根据所述第二工作负载在所述任一时间窗口的资源画像,确定所述第二工作负载在所述任一时间窗口的预测资源量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二工作负载在所述任一时间窗口的历史资源用量,对所述第二工作负载进行资源画像,包括:
根据所述第二工作负载在所述任一时间窗口的历史资源用量,确定所述第二工作负载在所述任一时间窗口的资源用量峰值;
在所述资源用量峰值的基础上增加设定的资源余量,作为所述第二工作负载在所述任一时间窗口的资源画像;
所述根据所述第二工作负载在所述任一时间窗口的资源画像,确定所述第二工作负载在所述任一时间窗口的预测资源量,包括:
确定在所述资源用量峰值的基础上增加设定的资源余量,作为所述第二工作负载在所述任一时间窗口的预测资源量。
7.根据权利要求4所述的方法,其特征在于,所述从采集的所述任一工作节点上所述第二工作负载的历史资源用量中,获取所述第二工作负载在所述目标SLO适配的至少一个时间窗口的历史资源用量,包括:
根据所述第二工作负载的历史资源用量随时间的波动情况,确定所述目标SLO适配的至少一个时间窗口;所述至少一个时间窗口相同或不同;
从所述第二工作负载的历史资源用量中,获取所述第二工作负载在所述至少一个时间窗口的历史资源用量。
8.根据权利要求2所述的方法,其特征在于,所述确定所述第一工作负载的任务的预测执行时长,包括:
从所述虚拟实例调度请求中,获取所述预测执行时长;
或者,
从预先设置的SLO与执行时长之间的对应关系中,获取所述目标SLO对应的执行时长,作为所述预测执行时长。
9.根据权利要求2所述的方法,其特征在于,所述预测资源用量的时间序列包括:至少一个时间窗口的预测资源用量;所述从所述预测资源用量的时间序列中,获取所述预测执行时长适配的目标预测资源用量,包括:
从所述预测资源用量的时间序列包括的至少一个时间窗口中,获取时间窗口大于或等于所述预测执行时长的目标时间窗口;
从所述目标时间窗口的预测资源用量中,获取所述目标预测资源用量。
10.根据权利要求1所述的方法,其特征在于,所述目标SLO适配的资源调度模型为第二类资源调度模型,所述从所述工作集群的工作节点上的第二工作负载的已分配资源中,确定所述工作节点上允许所述第一工作负载复用的第一资源,包括:
针对所述工作集群中的任一工作节点,从所述任一工作节点上的第二工作负载的已分配资源中,确定第一未使用资源;
从所述任一工作节点上已部署的所述目标SLO的工作负载的已分配资源中,确定第二未使用资源;
确定所述第一未使用资源和所述第二未使用资源,为所述任一工作节点上允许所述第一工作负载复用的第一资源。
11.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标SLO为资源独享型的情况下,针对所述工作集群中的任一工作节点,根据所述任一工作节点的资源总量和所述任一工作节点的资源预留量,确定所述任一工作节点上允许所述第一工作负载调度的第三资源;所述资源独享型的SLO高于资源复用型的SLO;
根据所述工作集群的工作节点对应的第三资源和所述资源请求量,从所述工作集群的工作节点中确定第二目标工作节点;
在所述第二目标工作节点,利用满足所述资源请求量的目标资源部署所述第一工作负载的虚拟实例。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述根据所述工作集群的工作节点对应的第二资源和所述资源请求量,从所述工作集群的工作节点中确定所述第一目标工作节点,包括:
根据所述工作集群的工作节点对应的第二资源和所述资源请求量,从所述工作集群的工作节点中,确定第二源大于或等于所述资源请求量的候选工作节点;
获取所述候选工作节点的资源利用率;
根据所述候选工作节点的资源利用率,从所述候选工作节点中确定所述第一目标工作节点。
13.一种计算设备,其特征在于,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器及所述通信组件,用于执行所述计算机程序以用于执行权利要求1-12任一项所述的方法中的步骤。
14.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-12任一项所述方法中的步骤。
CN202310268473.9A 2023-03-14 2023-03-14 资源调度方法、设备及存储介质 Active CN116467068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310268473.9A CN116467068B (zh) 2023-03-14 2023-03-14 资源调度方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310268473.9A CN116467068B (zh) 2023-03-14 2023-03-14 资源调度方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116467068A true CN116467068A (zh) 2023-07-21
CN116467068B CN116467068B (zh) 2024-06-18

Family

ID=87177927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310268473.9A Active CN116467068B (zh) 2023-03-14 2023-03-14 资源调度方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116467068B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118124A (zh) * 2013-02-22 2013-05-22 桂林电子科技大学 一种基于分层多代理的云计算负载均衡方法
CN105407162A (zh) * 2015-11-27 2016-03-16 国云科技股份有限公司 一种基于SLA服务等级的云计算Web应用资源负载均衡算法
US20200225997A1 (en) * 2011-12-22 2020-07-16 Netapp Inc. Dynamic instantiation and management of virtual caching appliances
CN111491006A (zh) * 2020-03-03 2020-08-04 天津大学 负载感知的云计算资源弹性分配系统及方法
CN113127230A (zh) * 2021-04-14 2021-07-16 中国科学院计算技术研究所 一种感知存储后端尾延迟slo的动态调控资源方法及系统
CN114138428A (zh) * 2021-10-18 2022-03-04 阿里巴巴(中国)有限公司 多优先级任务的slo保障方法、装置、节点及存储介质
CN114138427A (zh) * 2021-10-18 2022-03-04 阿里巴巴(中国)有限公司 Slo保障方法、装置、节点及存储介质
US20220124009A1 (en) * 2021-11-16 2022-04-21 Thijs Metsch Intent-based orchestration in heterogenous compute platforms

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200225997A1 (en) * 2011-12-22 2020-07-16 Netapp Inc. Dynamic instantiation and management of virtual caching appliances
CN103118124A (zh) * 2013-02-22 2013-05-22 桂林电子科技大学 一种基于分层多代理的云计算负载均衡方法
CN105407162A (zh) * 2015-11-27 2016-03-16 国云科技股份有限公司 一种基于SLA服务等级的云计算Web应用资源负载均衡算法
CN111491006A (zh) * 2020-03-03 2020-08-04 天津大学 负载感知的云计算资源弹性分配系统及方法
CN113127230A (zh) * 2021-04-14 2021-07-16 中国科学院计算技术研究所 一种感知存储后端尾延迟slo的动态调控资源方法及系统
CN114138428A (zh) * 2021-10-18 2022-03-04 阿里巴巴(中国)有限公司 多优先级任务的slo保障方法、装置、节点及存储介质
CN114138427A (zh) * 2021-10-18 2022-03-04 阿里巴巴(中国)有限公司 Slo保障方法、装置、节点及存储介质
US20220124009A1 (en) * 2021-11-16 2022-04-21 Thijs Metsch Intent-based orchestration in heterogenous compute platforms

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PENG KANG等: "SLO-aware Virtual Rebalancing for Edge Stream Processing", 《2021 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING (IC2E)》, 22 November 2021 (2021-11-22), pages 126 - 135 *
姚庆安等: "集群环境中微服务容器资源特征分析及优化", 《计算机系统应用》, 2 March 2023 (2023-03-02), pages 129 - 140 *

Also Published As

Publication number Publication date
CN116467068B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
US11032212B2 (en) Systems and methods for provision of a guaranteed batch
US11526434B1 (en) Network-level garbage collection in an on-demand code execution system
US20160210174A1 (en) Hybrid Scheduler and Power Manager
US20170083381A1 (en) System and method for processing task resources
WO2018113472A1 (zh) 资源的调度方法和服务器
CN110532086B (zh) 资源复用方法、设备、系统及存储介质
WO2016039963A2 (en) Resource sharing between two resource allocation systems
CN109672709B (zh) 一种混合云业务调度系统及方法
US10733015B2 (en) Prioritizing applications for diagonal scaling in a distributed computing environment
WO2016041446A1 (zh) 一种资源分配方法、装置及设备
CN114035941A (zh) 资源调度系统、方法以及计算设备
US20160147575A1 (en) Prioritizing and distributing workloads between storage resource classes
US10824339B1 (en) Snapshot-based garbage collection in an on-demand code execution system
EP4177751A1 (en) Resource scheduling method, resource scheduling system, and device
CN106878389B (zh) 用于在云系统中进行资源调度的方法和装置
CN113419846B (zh) 资源配置方法和装置、电子设备及计算机可读存储介质
CN107665143B (zh) 资源管理方法、装置及系统
CN109960591A (zh) 一种面向租户资源侵占的云应用资源动态调度的方法
CN112565317A (zh) 混合云系统及其数据处理方法、设备及存储介质
US10635501B2 (en) Adaptive scaling of workloads in a distributed computing environment
CN115080341A (zh) 计算集群及其数据采集方法、设备及存储介质
US9213575B2 (en) Methods and systems for energy management in a virtualized data center
CN116467068B (zh) 资源调度方法、设备及存储介质
CN117369990A (zh) 一种算力资源调度方法及装置、系统、设备、存储介质
WO2023066035A1 (zh) 资源分配方法以及资源分配装置

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
GR01 Patent grant