计算资源调整方法及计算系统转让专利

申请号 : CN202211110195.6

文献号 : CN115202889B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨定裕张东祥肖子洋

申请人 : 阿里巴巴(中国)有限公司

摘要 :

本公开涉及一种计算资源调整方法及计算系统。本公开通过将目标集群在每个历史时间接收的请求数量分解为非突发性负载数量和突发性负载数量,并根据多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量。从而精确的预测出下一时间的请求数量。根据下一时间的请求数量,在满足在线服务的响应时间小于或等于预设阈值的条件下,预测在线服务在下一时间所需的计算资源的最小值,并根据该最小值调整离线任务在下一时间使用的计算资源的最大值。从而在突发性负载的场景下,也可以动态调整离线任务的计算资源的限额,提高了整体的资源利用率。

权利要求 :

1.一种计算资源调整方法,其中,所述方法包括:

获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;

根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;

根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;

根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;

根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值;

根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,包括:确定由所述多个历史时间分别对应的非突发性负载数量构成的曲线中的多个变化点;

根据所述多个变化点中的最后一个变化点对应的历史时间和当前时间之间的非突发性负载数量,拟合非突发性负载数量和任一时间之间的第一关联关系;

根据所述第一关联关系预测所述下一时间的非突发性负载数量;

根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,包括:确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系;

将所述下一时间的请求数量作为所述映射关系中的请求数量,得到所述在线服务对应的计算资源和所述在线服务的响应时间之间的第三关联关系;

根据所述第三关联关系,预测所述在线服务在所述下一时间所需的计算资源的最小值。

2.根据权利要求1所述的方法,其中,所述方法还包括:

根据所述第一关联关系,计算所述多个历史时间分别对应的非突发性负载数量的估计值;

根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的非突发性负载数量的估计值,更新所述第一关联关系中的参数。

3.根据权利要求1所述的方法,其中,根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量,包括:预测所述下一时间是否有突发事件发生;

若所述下一时间有突发事件发生,则根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量。

4.根据权利要求1或3所述的方法,其中,根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量,包括:根据泊松分布、以及所述多个历史时间分别对应的突发性负载数量,拟合突发性负载数量和任一时间之间的第二关联关系;

根据所述第二关联关系预测所述下一时间的突发性负载数量。

5.根据权利要求4所述的方法,其中,所述方法还包括:

根据所述第二关联关系,计算所述多个历史时间分别对应的突发性负载数量的估计值;

根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的突发性负载数量的估计值,更新所述第二关联关系中的参数。

6.根据权利要求1所述的方法,其中,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系,包括:构建第一机器学习模型,所述第一机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第一机器学习模型的输出是所述映射关系中的第一参数;

构建第二机器学习模型,所述第二机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第二机器学习模型的输出是所述映射关系中的第二参数;

根据所述映射关系对应的样本数据对所述第一机器学习模型和所述第二机器学习模型进行训练;

根据训练后的所述第一机器学习模型确定所述第一参数,根据训练后的所述第二机器学习模型确定所述第二参数;

根据所述第一参数和所述第二参数,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系。

7.根据权利要求2所述的方法,其中,

所述第一关联关系表示为g(t)=ωt+b,g(t)表示非突发性负载数量,t表示时间,ω和b分别表示参数;

根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的非突发性负载数量的估计值,更新所述第一关联关系中的参数,包括:根据 ,更新ω和b, 表示第t个历史时间窗

口内QPS(t)的实际值,QPS(t)=g(t)+e(t),e(t)表示突发性负载数量,n表示历史时间窗口的个数, 表示g(t)的估计值,表示参数。

8.根据权利要求5所述的方法,其中,

所述第二关联关系包括e(t)=Ib•b(t)和 ,e(t)表示突发性负载数量,t表示时间,b(t)表示突发性工作负载,Ib为1时表示所述下一时间有突发事件发生,B和λ分别是未知的参数;

根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的突发性负载数量的估计值,更新所述第二关联关系中的参数,包括:根据 ,更新B和λ, 表示第t个历史时间窗口

内QPS(t)的实际值,QPS(t)=g(t)+e(t),e(t)表示突发性负载数量,n表示历史时间窗口的个数, 表示 的估计值,表示参数。

9.根据权利要求1所述的方法,其中,

所述映射关系表示为 , 表示所述在线服务的响应时间,表示在一个时间单位内目标集群处理的请求数, 表示由于队列已满导致请求被丢弃的概率,表示参数,动态依赖于所述在线服务对应的请求数量和所述在线服务对应的计算资源, 也动态依赖于所述在线服务对应的请求数量和所述在线服务对应的计算资源,m表示已知的参数。

10.一种计算系统,其中,包括:

获取模块,用于获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;

第一预测模块,用于根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;

第二预测模块,用于根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;

第三预测模块,用于根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;

调整模块,用于根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值;

所述第一预测模块根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量时,具体用于:确定由所述多个历史时间分别对应的非突发性负载数量构成的曲线中的多个变化点;

根据所述多个变化点中的最后一个变化点对应的历史时间和当前时间之间的非突发性负载数量,拟合非突发性负载数量和任一时间之间的第一关联关系;

根据所述第一关联关系预测所述下一时间的非突发性负载数量;

所述第三预测模块包括:确定单元和预测单元,其中,确定单元用于确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系;将所述下一时间的请求数量作为所述映射关系中的请求数量,得到所述在线服务对应的计算资源和所述在线服务的响应时间之间的第三关联关系;预测单元用于根据所述第三关联关系,预测所述在线服务在所述下一时间所需的计算资源的最小值。

说明书 :

计算资源调整方法及计算系统

技术领域

[0001] 本公开涉及信息技术领域,尤其涉及一种计算资源调整方法及计算系统。

背景技术

[0002] 当前有些大型云服务提供商会将在线服务和离线任务放在同一个计算机集群中运行,从而形成了混部集群。由于混部集群中存在着两种不同的任务,因此,如果给两种任务分配资源的分配方案不同,将会导致混部集群整体的资源利用率可能是不同的。目前的分配原则是动态调整离线任务的资源限额,以便对离线任务所需的资源进行合理压制,从而保证在线服务能够满足延迟目标的要求。
[0003] 但是,本申请的发明人发现,针对在线服务可能会出现突发性负载,例如混部集群在短时间内接收到大量的用户请求。而现有的动态调整离线任务的资源限额的方法无法适用于这种突发性负载的场景,从而导致在这种场景下,无法准确的控制混部集群整体的资源利用率。

发明内容

[0004] 为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种计算资源调整方法及计算系统,以便在突发性负载的场景下,也可以动态调整离线任务的计算资源的限额,并提高混部集群整体的资源利用率。
[0005] 第一方面,本公开实施例提供一种计算资源调整方法,包括:
[0006] 获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;
[0007] 根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;
[0008] 根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;
[0009] 根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;
[0010] 根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值。
[0011] 第二方面,本公开实施例提供一种计算系统,包括:
[0012] 获取模块,用于获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;
[0013] 第一预测模块,用于根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;
[0014] 第二预测模块,用于根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;
[0015] 第三预测模块,用于根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;
[0016] 调整模块,用于根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值。
[0017] 第三方面,本公开实施例提供一种电子设备,包括:
[0018] 存储器;
[0019] 处理器;以及
[0020] 计算机程序;
[0021] 其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
[0022] 第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
[0023] 本公开实施例提供的计算资源调整方法及计算系统,通过将目标集群在每个历史时间接收的请求数量分解为非突发性负载数量和突发性负载数量,并根据多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量。从而根据下一时间的非突发性负载数量和下一时间的突发性负载数量,可以精确的预测出下一时间的请求数量。进一步,根据下一时间的请求数量,在满足在线服务的响应时间小于或等于预设阈值的条件下,预测在线服务在下一时间所需的计算资源的最小值,并根据该最小值调整离线任务在下一时间使用的计算资源的最大值。也就是说,在预测出下一时间的请求数量的情况下,优先满足在线服务延迟目标的要求,在满足该要求的情况下预留出在线服务所需的计算资源的最小值,然后将混部集群中剩余的计算资源分配给离线任务。从而在突发性负载的场景下,也可以动态调整离线任务的计算资源的限额,提高了混部集群整体的资源利用率。

附图说明

[0024] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0025] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1为本公开实施例提供的应用场景的示意图;
[0027] 图2为本公开实施例提供的计算资源调整方法流程图;
[0028] 图3为本公开实施例提供的应用场景的示意图;
[0029] 图4为本公开实施例提供的QPS(t)的分解示意图;
[0030] 图5为本公开另一实施例提供的计算资源调整方法流程图;
[0031] 图6为本公开另一实施例提供的计算资源调整方法流程图;
[0032] 图7为本公开另一实施例提供的计算资源调整方法流程图;
[0033] 图8为本公开另一实施例提供的计算资源调整方法流程图;
[0034] 图9为本公开另一实施例提供的计算资源调整方法流程图;
[0035] 图10为本公开另一实施例提供的计算系统的结构示意图;
[0036] 图11为本公开实施例提供的电子设备实施例的结构示意图。

具体实施方式

[0037] 为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
[0038] 在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
[0039] 如图1所示,计算机11、计算机12和计算机13等多个计算机可以通过有线或无线的方式连接起来,从而使得该多个计算机之间可以高度紧密地协作完成计算工作。通常情况下,将类似于图1所示的多个计算机构成的系统记为计算机集群,简称集群。也就是说,计算机集群是一种计算机系统,该计算机系统不限于是多个计算机在硬件层面上连接形成的系统,在一些场景中,该计算机系统还可以是一组松散集成的计算机软件连接形成的系统。在某种意义上讲,该计算机系统可以被看作是一台计算机。例如图1所示,当该计算机系统接收到终端14发送过来的用户请求时,可以由该计算机系统中的某个计算机来执行,或者由该计算机系统中的多个计算机来协作执行。可以理解的是,该计算机系统不仅可以为终端14提供在线服务,还可以为其他终端提供在线服务,也就是说,该计算机系统可以同时或分时的为一个或多个终端提供在线服务。终端具体包括手机、电脑或平板电脑等。
[0040] 目前有些大型云服务提供商会将在线服务和离线任务放在同一个计算机集群中运行,从而形成了混部集群。其中,在线服务可以称为在线延迟关键型应用,是一种对于响应时间要求较为苛刻的在线应用,例如,购买服务。在线服务的响应时间可以理解为计算机集群对于用户请求作出响应的时间。通常情况下,如果在线服务的响应时间超过一定阈值,可能会导致终端上的应用程序无法正常运行或功能崩溃,因此,在线服务通常负责实时任务。而离线任务通常不要求达到较高的实时性,例如,离线任务可以称为离线分析任务,主要是离线运行的分析任务,例如,结构化查询语言(Structured Query Language)查询任务、机器学习任务等。通常来说,混部集群应尽最大的可能来运行离线任务,但是对时延、可靠性、中央处理器(Central Processing Unit,CPU)利用率等性能无法提供有效保证。另外,在混部集群中,由于在线服务和离线任务共享集群资源,因此需要根据不同的场景为两类任务进行合理的资源调度和分配。目前的分配原则是动态调整离线任务的资源限额,以便对离线任务所需的资源进行合理压制,从而保证在线服务能够满足延迟目标的要求。但是,针对在线服务可能会出现突发性负载,例如在促销活动中,混部集群在短时间内接收到大量的用户请求,而现有的动态调整离线任务的资源限额的方法无法适用于这种突发性负载的场景,从而导致在这种场景下,无法准确的控制混部集群整体的资源利用率。针对该问题,本公开实施例提供了一种计算资源调整方法,下面结合具体的实施例对该方法进行介绍。
[0041] 图2为本公开实施例提供的计算资源调整方法流程图。该方法可以由计算系统执行,该系统可以采用软件和/或硬件的方式实现,该系统可配置于电子设备中,例如服务器。另外,本实施例所述的计算资源调整方法可以适用于如图3所示的应用场景,在该应用场景中,计算机系统31是混部集群,服务器32可以是独立于混部集群的一个计算设备,或者服务器32可以是混部集群中的一个计算设备。具体的,服务器32可以采集混部集群中的相关信息,并根据该相关信息对该混部集群中在线服务与离线任务各自的计算资源进行调整或分配,从而提高该混部集群整体的资源利用率。下面结合图3对该方法进行详细介绍,如图2所示,该方法具体步骤如下:
[0042] S201、获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量。
[0043] 例如,服务器32中包括流量预测模块、响应时间预测模块和系统日志读取模块。其中,系统日志读取模块负责读取混部集群的当前状态,例如包括当前的每秒查询数(Queries‑per‑second,QPS)、在线服务当前实际使用的计算资源、离线任务当前实际使用的计算资源等。QPS是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。简单的说,QPS = req/sec = 请求数量/秒。该请求可以是上述的用户请求,该用户请求具体可以是查询请求。QPS代表的是服务器的机器性能,例如最大吞吐能力。在线服务当前实际使用的计算资源可以是在线服务当前实际占用的CPU利用率或在线服务当前实际占用的CPU内核数量。离线任务当前实际使用的计算资源可以是离线任务当前实际占用的CPU利用率或离线任务当前实际占用的CPU内核数量。可以理解的是,混部集群整体的CPU利用率最高可以达到100%,但是,由于存在资源浪费的问题,导致在线服务当前实际占用的CPU利用率和离线任务当前实际占用的CPU利用率的和值可能小于100%。同理,在线服务当前实际占用的CPU内核数量和离线任务当前实际占用的CPU内核数量的和值可能小于混部集群中的CPU内核总数。因此,本实施例需要确定出混部集群整体的计算资源在两种任务之间的分配方案,从而提高整体的计算资源的利用率。本实施例将分配给离线任务的计算资源的最大值即限额记为离线任务quota,也就是说,离线任务实际使用的计算资源小于或等于离线任务quota。另外,本实施例可以实现对离线任务quota的动态调整。流量预测模块可以根据历史的QPS预测将来(例如下一时间)的QPS,响应时间预测模块可以在不同的资源约束下预测在线服务的响应时间。
[0044] 具体的,本实施例将时间维度拆分为大小相等的时间窗口,每个时间窗口的长度可以是分钟级别的长度,例如,每个时间窗口的长度是1分钟。另外,时间窗口的长度可以决定离线任务quota的调整频率。例如,每个时间窗口调整一次离线任务quota,那么离线任务quota的调整频率就是每1分钟调整一次。
[0045] 令QPS(t)表示在第t个时间窗口内每秒传入的查询请求的最大数量,例如,一个时间窗口包括60秒,每秒都会有多个查询请求传入混部集群,因此,每秒分别对应有查询请求的数量,若第t个时间窗口内某一秒对应的查询请求的数量最大,那么将该秒对应的查询请求的数量记为QPS(t)。如果将第t个时间窗口作为一个历史时间,那么将第t个时间窗口内每秒分别对应的查询请求的数量进行加和,将和值作为目标集群在该历史时间接收的请求数量,该目标集群可以是混部集群。或者,可以用QPS(t)来代表目标集群在该历史时间接收的请求数量。例如,如上所述的系统日志读取模块可以读取当前的QPS,当前的QPS可以是当前时间窗口内每秒分别对应的查询请求的数量,假设当前时间窗口是第t个时间窗口,那么服务器32可以根据当前的QPS确定出QPS(t)。随着t的不断增长,第t个时间窗口、以及第t个时间窗口之前的时间窗口会分别成为历史时间,从而可以得到目标集群在多个历史时间分别接收的请求数量。可以理解的是,历史时间不限于是历史的时间窗口,例如,还可以是历史时刻。本实施例以时间窗口为例进行示意性说明。
[0046] 另外,在本实施例中,可以通过如下公式(1)将每个历史时间的请求数量分解为两个部分:
[0047] QPS(t)=g(t)+e(t)     (1)
[0048] 其中,g(t)表示非突发性负载数量,即平时情况下的QPS流量趋势,也可以称为趋势项,平时情况是相对于突发情况而言的,突发情况类似于促销活动等短时间内接收到大量用户请求的情况。e(t)表示突发性负载数量,例如,促销活动场景下的突发性流量,也可以称为突发性QPS项。
[0049] 具体的分解过程包括如下步骤a)‑c):
[0050] 步骤a):获取过去一段时间内(例如过去10分钟内)每个历史时间窗口对应的QPS(t),假设得到10个QPS(t),t=1,2,…,10,该10个QPS(t)构成一个序列。应用中值滤波来去除该序列中的异常值。
[0051] 步骤b):使用移动平均平滑进一步降低该序列中的噪声,从而得到g(t)构成的序列。
[0052] 步骤c):将同一取值的t对应的QPS(t)和g(t)相减得到e(t),即e(t)是QPS(t)和g(t)之间的残差。
[0053] 如图4所示,时间戳(timestamp)可以是时间窗口的索引,例如,第n个时间窗口的索引是n,在这种情况下,QPS(t)的含义如上所述。另外,在其他一些实施例中,时间戳还可以是时间点,例如精确到秒的时间点,例如,t表示第t秒,那么QPS(t)表示目标集群在第t秒接收的请求数量。本实施例以时间戳表示时间窗口的索引为例进行示意性说明。假设如图4所示的曲线①是多个历史时间窗口分别对应的QPS(t)按照时间顺序依次连接形成的曲线,曲线②是根据上述步骤b)得到的g(t)按照时间顺序依次连接形成的曲线,曲线③是根据上述步骤c)得到的e(t)按照时间顺序依次连接形成的曲线。
[0054] S202、根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量。
[0055] 例如,如图4所示的曲线①是多个历史时间分别对应的请求数量按照时间顺序依次连接形成的曲线,曲线②是多个历史时间分别对应的非突发性负载数量按照时间顺序依次连接形成的曲线,曲线③是多个历史时间分别对应的突发性负载数量按照时间顺序依次连接形成的曲线。进一步,根据曲线②可以预测下一时间的非突发性负载数量,例如g(t+1);根据曲线③预测下一时间的突发性负载数量,例如e(t+1)。
[0056] S203、根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量。
[0057] 例如,根据g(t+1)和e(t+1),预测下一时间的请求数量QPS(t+1),即此处的QPS(t+1)是目标集群即混部集群在下一时间接收的请求数量的预测值,QPS(t+1)=g(t+1)+e(t+
1)。
[0058] S204、根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值。
[0059] 在本实施例中可以预先建立QPS、CPUlc、RT之间的映射关系,其中,CPUlc表示在线服务占用的计算资源,RT表示在线服务的响应时间。根据该映射关系可以预知不同QPS和CPUlc下的响应时间,并将每一组已知的记录到表格中。其中,不同的QPS和CPUlc可以记为不同的资源约束。在给定预测值QPS(t+1)的情况下,将该映射关系中的QPS替换为QPS(t+1),通过查表可以找到最小值CPUlc,使得QPS(t+1)和最小值CPUlc对应的RT小于或等于预设阈值η。也就是说,在给定预测值QPS(t+1)的情况下,通过查表可以找到满足RT小于预设阈值η这个条件下的最小值CPUlc。此时最小值CPUlc可以理解为根据下一时间的请求数量的预测值所预测出的在线服务在下一时间所需的计算资源的最小值。QPS(t+1)和最小值CPUlc对应的RT可以理解为在线服务在下一时间的响应时间。该下一时间可以是下一个时间窗口或下一时间点。具体的,如果历史时间采用的是历史时间窗口,那么下一时间可以是下一个时间窗口。如果历史时间采用的是历史时间点,则下一时间可以是下一时间点。
[0060] S205、根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值。
[0061] 假设混部集群整体的计算资源记为CPUtotal,根据CPUtotal和最小值CPUlc调整离线任务在下一时间可使用的计算资源的最大值,例如,该最大值等于CPUtotal减去最小值CPUlc,即该最大值可以作为下一时间的离线任务quota。如果CPUtotal和最小值CPUlc分别是CPU内核数量,那么分配给离线任务的最大CPU内核数量将被更新为CPUtotal减去最小值CPUlc,即CPUtotal和最小值CPUlc的差值。
[0062] 本公开实施例通过将目标集群在每个历史时间接收的请求数量分解为非突发性负载数量和突发性负载数量,并根据多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量。从而根据下一时间的非突发性负载数量和下一时间的突发性负载数量,可以精确的预测出下一时间的请求数量。进一步,根据下一时间的请求数量,在满足在线服务的响应时间小于或等于预设阈值的条件下,预测在线服务在下一时间所需的计算资源的最小值,并根据该最小值调整离线任务在下一时间使用的计算资源的最大值。也就是说,在预测出下一时间的请求数量的情况下,优先满足在线服务延迟目标的要求,在满足该要求的情况下预留出在线服务所需的计算资源的最小值,然后将混部集群中剩余的计算资源分配给离线任务。从而在突发性负载的场景下,也可以动态调整离线任务的计算资源的限额,提高了混部集群整体的资源利用率。
[0063] 具体的,如上所述的服务器32可以包括系统日志读取模块、以及如图5所示的流量预测模块和自适应控制器,其中,系统日志读取模块可以从混部集群采集日志,并将日志存储到日志数据库中。该日志数据库中的日志可以作为历史数据输入到流量预测模块,该历史数据可以包括该混部集群历史的性能指标,例如,历史的QPS、离线任务在历史时间实际占用的计算资源、在线服务在历史时间实际占用的计算资源等。流量预测模块可以根据历史的QPS预测出将来的QPS,例如,QPS(t+1)。进一步,流量预测模块将其预测出的QPS(t+1)输入到自适应控制器,该自适应控制器中包括如上所述的响应时间预测模块,响应时间预测模块可以在给定QPS(t+1)的情况下,在不同的CPUlc的约束下预测在线服务的响应时间。自适应控制器可以根据响应时间预测模块预测出的各个响应时间,选取一个最小值CPUlc,使得QPS(t+1)和最小值CPUlc对应的RT小于或等于预设阈值η。进一步,自适应控制器可以根据最小值CPUlc,计算CPUtotal和最小值CPUlc的差值,并将该差值作为调整后的离线任务quota分配给离线任务。
[0064] 图6为本公开另一实施例提供的计算资源调整方法流程图。在本实施例中,如上所述的根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,包括如下几个步骤:
[0065] S601、确定由所述多个历史时间分别对应的非突发性负载数量构成的曲线中的多个变化点。
[0066] 如图7所示,时间戳表示时间窗口的索引。曲线①是多个历史时间窗口分别对应的QPS(t)按照时间顺序依次连接形成的曲线。根据上述方法可以将每个QPS(t)分解为g(t)和e(t)。将分解后得到的多个g(t)按照时间顺序依次连接后构成如图7所示的曲线②。进一步,确定曲线②上的多个变化点。例如,变化点可以是曲线②上的拐点,或者其他特征点。在其他实施例中,还可以将曲线②划分为多个分段,每个分段的端点可以作为变化点。
[0067] S602、根据所述多个变化点中的最后一个变化点对应的历史时间和当前时间之间的非突发性负载数量,拟合非突发性负载数量和任一时间之间的第一关联关系。
[0068] 如图5所示,假设t是当前时间窗口的索引,a、b、c、d分别表示变化点,其中,d是距离当前时间窗口最近的一个变化点,即最后一个变化点,sj是变化点d对应的时间窗口的索引,sj
[0069] g(t)=ωt+b    (2)
[0070] 其中,ω和b都是参数,可以通过最小二乘法计算得到。也就是说,公式(2)采用了线性回归模型来拟合g(t)的变化趋势,该变化趋势具体可以是如图7所示的虚线71。
[0071] S603、根据所述第一关联关系预测所述下一时间的非突发性负载数量。
[0072] 具体的,根据公式(2)可以预测下一时间的非突发性负载数量g(t+1),例如,将公式(2)中的t替换为t+1,则g(t+1)=ω(t+1)+b。g(t+1)是下一时间例如下一时间窗口对应的趋势性QPS。
[0073] 下面结合图7介绍一下如何根据曲线③预测下一时间的突发性负载数量,例如e(t+1)。
[0074] 具体的,在预测e(t+1)之前,需要对如图7所示的支持向量机(support vector machines,SVM)的二分类模型进行训练。在训练过程中,需要采集多个历史时间分别对应的QPS(t),以及多个历史时间分别对应的在线应用的CPU利用率。进一步,将同一个历史时间对应的QPS(t)、在线应用的CPU利用率、以及该历史时间记为一组训练数据,从而得到多组训练数据,并将该多组训练数据作为该二分类模型的输入。针对每一组训练数据,该二分类模型的输出是0或1,0表示在该组训练数据中的历史时间上没有突发事件发生,1表示在该组训练数据中的历史时间上有突发事件发生。例如,针对每一组训练数据,若该组训练数据中的QPS(t)大于或等于第一阈值,且在线应用的CPU利用率大于或等于第二阈值,则说明该组训练数据中的历史时间上有突发事件发生。可以理解的是,在突发事件发生时,很可能会导致在线应用的CPU利用率提高,因此,在训练该二分类模型时,在线应用的CPU利用率可以作为QPS(t)的补充信息。也就是说,在训练该二分类模型的过程中,每一组训练数据可以包括QPS(t)和历史时间,而不包括在线应用的CPU利用率,在这种情况下,若该组训练数据中的QPS(t)大于或等于第一阈值,则说明该组训练数据中的历史时间上有突发事件发生。另外,为了提高二分类模型的精准度,可以采集过去促销活动中在线应用的CPU利用率的时间序列作为正样本。在训练结束后,该二分类模型可用于预测将来的每个时间窗口是否有突发事件发生。例如图7所示,在将该二分类模型训练完成后,可以将下一个时间窗口的索引t+1作为该二分类模型的输入,该二分类模型输出预测结果,该预测结果为0或1,0表示该二分类模型预测出下一个时间窗口没有突发事件发生,1表示该二分类模型预测出下一个时间窗口有突发事件发生。此处,可以采用Ib来表示该二分类模型在使用阶段的输出。
[0075] 具体的,根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量,包括:预测所述下一时间是否有突发事件发生;若所述下一时间有突发事件发生,则根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量。
[0076] 例如,一旦该二分类模型预测出下一个时间窗口有突发事件发生,即Ib为1,则需要根据如图7所示的曲线③预测下一时间的突发性负载数量,例如e(t+1)。
[0077] 可选的,根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量,包括:根据泊松分布、以及所述多个历史时间分别对应的突发性负载数量,拟合突发性负载数量和任一时间之间的第二关联关系;根据所述第二关联关系预测所述下一时间的突发性负载数量。
[0078] 例如,一旦Ib为1,则需要预测下一个时间窗口下突发性工作负载b(t)的值,b(t)和e(t)的关系如下公式(3)所示:
[0079] e(t)=Ib•b(t)(3)
[0080] 也就是说,当Ib为1时,e(t)=b(t)。由于突发性工作负载b(t)是在短时间内来自用户的大量随机请求产生的,因此,可以使用泊松分布对b(t)进行建模,b(t)可以通过如下公式(4)来确定:
[0081] (4)
[0082] 其中,B和λ分别是未知的参数。使用最大似然估计可以计算出B和λ的值。
[0083] 上述公式(3)和公式(4)联合起来可以作为突发性负载数量e(t)和任一时间之间的第二关联关系。该第二关联关系可以体现出e(t)随着将来时间的变化趋势,该变化趋势可以是图7所示的虚线72。根据该第二关联关系可以预测下一时间窗口的突发性负载数量即e(t+1),也就是说,将公式(3)和公式(4)中的t替换为t+1,即可得到e(t+1)。例如图7所示,点e的纵坐标表示根据虚线72预测出来的下一时间窗口的突发性负载数量e(t+1)。
[0084] 综上所述,在图7中,将每个QPS(t)分解为g(t)和e(t)是第一步,根据[sj,t]这个期间内的g(t)拟合出虚线71是第二步,二分类模型预测出下一个时间窗口有无突发事件发生是第三步,在下一个时间窗口有突发事件发生的情况下,根据e(t)和二分类模型的预测结果拟合出虚线72是第四步。
[0085] 进一步,根据如上预测出来的g(t+1)和此处预测出来的e(t+1),可预测出QPS(t+1)。
[0086] 可以理解的是,公式(2)中的ω和b、以及公式(4)中的B和λ都是根据历史数据计算出来的,但是,由于ω和b是根据[sj,t]这个期间内的g(t)计算出来的,而最后一个变化点是不断变化的,因此,ω和b会随着历史数据的不断增加而变化,例如,每增加一个历史时间窗口,ω和b可以更新一次。而B和λ随着历史数据的不断增加变化较慢,例如,在初次计算B和λ的过程中采用的是过去一个月的历史数据,由于一个时间窗口的长度为1分钟,若目前只是增加了几个历史时间窗口,那么这几个历史时间窗口对应的历史数据对已经计算出的B和λ影响较小,因此,B和λ可以保持不变。当增加的历史时间窗口的个数达到一个月所能包括的时间窗口个数时,可以采用新的一个月的历史数据来更新B和λ的取值。
[0087] 可选的,所述方法还包括:根据所述第一关联关系,计算所述多个历史时间分别对应的非突发性负载数量的估计值;根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的非突发性负载数量的估计值,更新所述第一关联关系中的参数。
[0088] 可选的,所述方法还包括:根据所述第二关联关系,计算所述多个历史时间分别对应的突发性负载数量的估计值;根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的突发性负载数量的估计值,更新所述第二关联关系中的参数。
[0089] 由于在同样的预测误差下,存在高估和低估,其中,高估是指预测值比实际值大,低估是指预测值比实际值小。在下一个时间窗口中,高估QPS(t+1)会导致资源利用率降低,但是低估QPS(t+1)会导致在线服务违反延迟的约束,即在线服务的响应时间无法满足要求,这是较为严重的问题,由此看来,高估优于低估。因此,本实施例可以通过添加惩罚因子来对低估做出一定的惩罚,从而对上述已经计算出来的参数ω和b、B和λ进行更新。
[0090] 对ω和b的更新可以采用如下公式(5),对B和λ的更新可以采用如下公式(6):
[0091] (5)
[0092] (6)
[0093] 其中, 表示第t个历史时间窗口内QPS(t)的实际值。n表示历史时间窗口的个数。表示公式(2)中的g(t)的估计值。 表示公式(4)中的 的估计值。表示参数。
[0094] 本实施例使用预测性资源分配算法的思路,提出了一条可靠的、可解释的资源分配的逻辑链路。根据日常流量和突发性流量各自的特点,提出了一个可拆解流量预测模型,分别用线性模型和泊松模型预测两种不同场景的QPS,针对性地解决了在突发性负载情景下的QPS预测问题。另外,通过添加惩罚因子来对低估做出一定的惩罚,从而对参数ω和b、B和λ进行更新,使得下一时间窗口对应的趋势性QPS和下一时间窗口对应的突发性QPS项的预测值更精准,从而提高了下一时间窗口总的QPS的预测精度。
[0095] 图8为本公开另一实施例提供的计算资源调整方法流程图。在本实施例中,如上所述的根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,包括如下几个步骤:
[0096] S801、确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系。
[0097] 可以理解的是,在线服务的约束由响应时间这个指标来决定。只要在线服务的响应时间小于预定义的阈值η,就可以认为没有违反约束。通常有两个关键因素会影响在线服务的响应时间,分别是在线服务的QPS、以及离线任务quota。当在线服务的QPS急剧增加的同时需要及时增加在线服务的计算资源CPUlc以满足约束要求。在预测得到下一时间窗口的QPS(t)的情况下,可以推断出CPUlc的最小设置,即最小值CPUlc。当最小值CPUlc被分配给在线服务时,可使得在线服务的响应时间不超过η。这是因为当CPUlc被最小化时,实际是在最大化离线任务quota,从而可以提高混部集群整体的CPU利用率。
[0098] 为了在不违反响应时间约束的情况下找到最小的CPUlc,需要建立一个映射模型M(QPS,CPUlc)→RT,其中,QPS表示在线服务对应的请求数量,RT表示在线服务的响应时间,CPUlc表示在线服务对应的计算资源。也就是说,通过该映射模型可以预测不同QPS、CPUlc下的响应时间,即通过该映射模型可以建立QPS、CPUlc、RT三者之间的映射关系。在一些实施例中,可以将QPS、CPUlc、RT分别取不同值时得到的映射关系存储在表格中,在给定QPS(t+1)的情况下,通过查表找到最小的CPUlc,使得M(QPS,CPUlc)<η。
[0099] S802、将所述下一时间的请求数量作为所述映射关系中的请求数量,得到所述在线服务对应的计算资源和所述在线服务的响应时间之间的第三关联关系。
[0100] 为了学习映射模型M(QPS,CPUlc),本实施例可以将在线服务的查询处理建模为多服务器排队模型,从而可以使用如下的公式(7)近似的表示响应时间RT:
[0101] (7)
[0102] 其中,表示在一个时间单位内混部集群处理的请求数。 表示由于队列已满导致请求被丢弃的概率。m表示已知的参数。当 >0时,表示突发性工作负载无法被实时处理,也就是说,一小部分请求会被丢弃而无需进一步处理。是一个参数,取决于 和QPS,具体的,。另外,动态依赖于QPS和CPUlc, 也动态依赖于QPS和CPUlc,因此,公式(7)可以作为QPS、CPUlc、RT三者之间的映射关系。将下一时间的请求数量QPS(t+1)作为该映射关系中的QPS,从而得到CPUlc、RT之间的第三关联关系。
[0103] S803、根据所述第三关联关系,预测所述在线服务在所述下一时间所需的计算资源的最小值。
[0104] 根据该第三关联关系可以预测出在线服务在下一个时间窗口所需的计算资源的最小值即最小的CPUlc,使得RT<η。
[0105] 本实施例通过传统排队论理论和前沿的深度学习算法,提出了一个可靠的根据系统负载预测进行响应时间预测的模型。
[0106] 可以理解的是,公式(7)中的参数 和 在初始状态下是未知的,需要通过两个多层感知器模型(Multilayer Perceptron,MLP)来学习参数 和 ,当 和 确定下来之后,将 和 带入到公式(7)时,公式(7)才可以作为QPS、CPUlc、RT三者之间的映射关系。下面结合具体的实施例对 和 的确定过程进行介绍。
[0107] 可选的,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系,包括如下几个步骤:
[0108] S901、构建第一机器学习模型,所述第一机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第一机器学习模型的输出是所述映射关系中的第一参数。
[0109] 由于公式(7)中的 动态依赖于QPS和CPUlc, 也动态依赖于QPS和CPUlc,因此,本实施例可以构建两个多层感知器模型(Multilayer Perceptron,MLP)来学习参数 和 ,其中,针对参数 构建的多层感知器模型记为 , 可作为第一机器学习模型。 表示为如下公式(8)。
[0110] (8)
[0111] 其中,QPS表示在线服务对应的请求数量,CPUlc表示在线服务对应的计算资源,的输入是QPS和CPUlc, 的输出是 ,记为第一参数。
[0112] S902、构建第二机器学习模型,所述第二机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第二机器学习模型的输出是所述映射关系中的第二参数。
[0113] 针对 构建的多层感知器模型记为 。 表示为如下公式(9):
[0114] (9)
[0115] 其中, 的输入是QPS和CPUlc, 的输出是 , 记为第二参数。
[0116] S903、根据所述映射关系对应的样本数据对所述第一机器学习模型和所述第二机器学习模型进行训练。
[0117] 具体的, 、 分别包括两个隐藏层,每个隐藏层包含8个节点。 、可以同时训练,在训练之前,可以进行离线实验,以获得训练样本,每个训练样本是一个三元组,每个三元组可以表示为, 、 中的神经元参数可以使用标准的反向传播算法进行训练。具体的,可以将公式(8)和公式(9)分别带入到公式(7)中,然后采用训练样本,同时对 、 中的神经元参数进行学习。
[0118] S904、根据训练后的所述第一机器学习模型确定所述第一参数,根据训练后的所述第二机器学习模型确定所述第二参数。
[0119] 当 、 训练完成后,通过公式(8)可以计算出 的预测值,根据公式(9)可以计算出 的预测值。
[0120] S905、根据所述第一参数和所述第二参数,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系。
[0121] 具体的,将 的预测值和 的预测值带入到公式(7)即可计算得到QPS、CPUlc、RT三者之间的映射关系。
[0122] 综上所述,针对现有技术几乎无法应对突发性流量的情况,本公开实施例通过基于SVM的突发性状况预测模型、以及基于泊松分布预测突发性QPS,成功解决了在突发性流量场景下的QPS预测和离线任务quota的动态调整。通过响应时间预测模型,能够精准地预测不同离线任务quota下的在线任务响应时间,能在不违反响应时间阈值的情况下,充分利用CPU计算资源。另外,本实施例将离线任务quota的调整分为QPS预测和响应时间预测,具有较好的可解释性,另外,针对QPS预测和响应时间预测可以分别进行调整和优化,从而具有良好的灵活性和可扩展性。由于本公开实施例将每个历史时间的请求数量精确的分解为非突发性负载数量和突发性负载数量两部分,因此,根据多个历史时间分别对应的非突发性负载数量可以预测出下一时间的非突发性负载数量,以及根据多个历史时间分别对应的突发性负载数量可以预测出下一时间的突发性负载数量。进一步,根据下一时间的非突发性负载数量和下一时间的突发性负载数量,可以精确的预测出下一时间总的请求数量,因此,当下一时间出现突发事件例如混部集群接收到大量的用户请求时,也可以精准的预测出下一时间的请求数据。从而使得本公开实施例提供的方法能够适用于突发性负载的场景。另外,由于本实施例还可以在保证在线服务的响应时间小于或等于预设阈值的条件下即保证在线服务的性能不受影响的情况下,根据下一时间的请求数量预测出在线服务在下一时间所需的计算资源的最小值,然后将混部集群中除该最小值之外剩余的计算资源分配给离线任务,也就是说,在保证在线服务不受影响的情况下,将尽可能多的计算资源分配给离线任务,使得在线服务和离线任务两部分尽可能多的占用混部集群整体的计算资源,从而提高了混部集群整体计算资源的利用率。
[0123] 图10为本公开实施例提供的计算系统的结构示意图。该计算系统可以在云上分布式计算环境中实现,例如,该计算系统可以是至少一个分布式计算机构成的系统,或者,该计算系统可以是多个分布式计算机中各个分布式计算机的部分子系统构成的系统。具体的,本公开实施例提供的计算系统可以执行计算资源调整方法实施例提供的处理流程,如图10所示,计算系统100包括:
[0124] 获取模块101,用于获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;
[0125] 第一预测模块102,用于根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;
[0126] 第二预测模块103,用于根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;
[0127] 第三预测模块104,用于根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;
[0128] 调整模块105,用于根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值。
[0129] 可选的,第一预测模块102根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量时,具体用于:
[0130] 确定由所述多个历史时间分别对应的非突发性负载数量构成的曲线中的多个变化点;
[0131] 根据所述多个变化点中的最后一个变化点对应的历史时间和当前时间之间的非突发性负载数量,拟合非突发性负载数量和任一时间之间的第一关联关系;
[0132] 根据所述第一关联关系预测所述下一时间的非突发性负载数量。
[0133] 可选的,计算系统100还包括:计算模块106和更新模块107,其中,计算模块106用于根据所述第一关联关系,计算所述多个历史时间分别对应的非突发性负载数量的估计值;更新模块107用于根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的非突发性负载数量的估计值,更新所述第一关联关系中的参数。
[0134] 可选的,第一预测模块102根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量时,具体用于:
[0135] 预测所述下一时间是否有突发事件发生;
[0136] 若所述下一时间有突发事件发生,则根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量。
[0137] 可选的,第一预测模块102根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量时,具体用于:
[0138] 根据泊松分布、以及所述多个历史时间分别对应的突发性负载数量,拟合突发性负载数量和任一时间之间的第二关联关系;
[0139] 根据所述第二关联关系预测所述下一时间的突发性负载数量。
[0140] 可选的,计算模块106还用于根据所述第二关联关系,计算所述多个历史时间分别对应的突发性负载数量的估计值;更新模块107还用于根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的突发性负载数量的估计值,更新所述第二关联关系中的参数。
[0141] 可选的,第三预测模块104包括:确定单元1041和预测单元1042,其中,确定单元1041用于确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系;将所述下一时间的请求数量作为所述映射关系中的请求数量,得到所述在线服务对应的计算资源和所述在线服务的响应时间之间的第三关联关系;
预测单元1042用于根据所述第三关联关系,预测所述在线服务在所述下一时间所需的计算资源的最小值。
[0142] 可选的,确定单元1041在确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系时,具体用于:
[0143] 构建第一机器学习模型,所述第一机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第一机器学习模型的输出是所述映射关系中的第一参数;
[0144] 构建第二机器学习模型,所述第二机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第二机器学习模型的输出是所述映射关系中的第二参数;
[0145] 根据所述映射关系对应的样本数据对所述第一机器学习模型和所述第二机器学习模型进行训练;
[0146] 根据训练后的所述第一机器学习模型确定所述第一参数,根据训练后的所述第二机器学习模型确定所述第二参数;
[0147] 根据所述第一参数和所述第二参数,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系。
[0148] 图10所示实施例的计算系统可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0149] 以上描述了计算系统的内部功能和结构,该系统可实现为一种电子设备。图11为本公开实施例提供的电子设备实施例的结构示意图。如图11所示,该电子设备包括存储器111和处理器112。
[0150] 存储器111用于存储程序。除上述程序之外,存储器111还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
[0151] 存储器111可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0152] 处理器112与存储器111耦合,执行存储器111所存储的程序,以用于:
[0153] 获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;
[0154] 根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;
[0155] 根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;
[0156] 根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;
[0157] 根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值。
[0158] 进一步,如图11所示,电子设备还可以包括:通信组件113、电源组件114、音频组件115、显示器116等其它组件。图11中仅示意性给出部分组件,并不意味着电子设备只包括图
11所示组件。
[0159] 通信组件113被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件113经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件113还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0160] 电源组件114,为电子设备的各种组件提供电力。电源组件114可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
[0161] 音频组件115被配置为输出和/或输入音频信号。例如,音频组件115包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器111或经由通信组件113发送。在一些实施例中,音频组件115还包括一个扬声器,用于输出音频信号。
[0162] 显示器116包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
[0163] 另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的计算资源调整方法。
[0164] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0165] 以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。