CN105491079A - 云计算环境中调整应用所需资源的方法及装置 - Google Patents
云计算环境中调整应用所需资源的方法及装置 Download PDFInfo
- Publication number
- CN105491079A CN105491079A CN201410471475.9A CN201410471475A CN105491079A CN 105491079 A CN105491079 A CN 105491079A CN 201410471475 A CN201410471475 A CN 201410471475A CN 105491079 A CN105491079 A CN 105491079A
- Authority
- CN
- China
- Prior art keywords
- mode
- workload
- actual
- application
- mode conversion
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000006243 chemical reaction Methods 0.000 claims abstract description 433
- 238000005070 sampling Methods 0.000 claims abstract description 198
- 230000007704 transition Effects 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 13
- 238000013468 resource allocation Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及云计算技术领域,公开了云计算环境中调整应用所需资源的方法及装置,方法,包括:获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前应用的工作负载模式的模式ID对应的工作负载取值范围;确定应用的当前工作负载模式发生模式转换;获取最近的m次实际的模式转换数据;根据获取的最近的m次实际的模式转换数据以及模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID;根据预测得到的下次模式转换前的模式的持续时间,确定下次资源调整的时间;当到达下次资源调整的时间时,根据预测得到的下次模式转换后的模式ID,调整应用所需的资源。使用本发明,可以实现资源的有效调整。
Description
技术领域
本发明涉及云计算技术领域,特别是涉及云计算环境中调整应用所需资源的方法及装置。
背景技术
云计算技术的不断发展,使得云计算能够灵活地、可扩展地和按需地为应用分配所需资源。考虑到云服务提供商的利益,资源的分配要尽量提高资源的利用率;同时还需要满足用户的应用需求,不能违反应用的服务等级协议(ServiceLevelAgreement,SLA)。
在云计算环境中,云平台通常采用资源预测技术为应用进行资源分配,也就是基于预测到的应用未来的工作负载为应用分配资源。资源预测的一般过程包括:对应用的工作负载情况进行监控,对监控到的应用工作负载进行等间隔采样得到应用工作负载的历史时间序列,基于应用工作负载的历史时间序列来预测未来采样时刻的工作负载。这里所说的应用的工作负载可以为应用的并发请求数、应用的请求响应时间和/或应用的用户数等。
现有技术中,基于资源预测技术来分配资源,需要设置一个固定的预测窗口,根据工作负载的历史数据,预测一个预测窗口中所有采样时刻的工作负载。然后根据预测窗口中各采样时刻的工作负载的预测值和代价函数,将预测窗口分成若干个时间段,确定每个时间段的长度以及预测窗口中各时间段云平台需要分配给应用的资源数量。这种方法依赖于预测窗口的设置,窗口的大小是固定的。每隔固定的预测窗口大小的时间进行一次资源预测,预测下一个预测窗口中所有时刻的工作负载。对于工作负载随时间呈现周期性变化应用来说,这种预测方法是相对准确的。
然而,现有用户需求中,会经常涉及一些工作负载表现为非周期性的应用。工作负载表现为非周期性是指工作负载随时间有规律的变化,但这种变化不具备周期性。比如一些工作负载与事件相关的应用:一个运行在云平台上的网络游戏,当进行资料片更新时,由于游戏玩家会抢鲜来体验更新后的游戏,从而导致应用的工作负载会出现明显变化,并且实际中两次资料片更新时,应用工作负载的变化规律可能是相同的。而资料片更新的时间是由游戏运营人员确定的,并不具备周期性。使用现有技术进行资源预测时,如果预测窗口选小了,就捕捉不到应用的工作负载的变化趋势,无法准确的进行资源预测;如果预测窗口选大了,由于任何预测不可避免都会存在误差,预测误差累加将产生比较大的预测误差。
因此,对于非周期性的应用,采用现有技术进行资源预测将会导致较大的预测误差,从而无法实现资源的合理分配。
发明内容
本发明实施例提供了一种云计算环境中调整应用所需资源的方法和装置,能够在非周期的应用中减小资源预测误差,从而更加准确的调整应用所需的资源。
第一方面,本发明实施例提供了一种云计算环境中的调整应用所需资源的方法,包括:
获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式标识ID对应的工作负载取值范围;
根据所述当前采样时刻的实际工作负载和所述当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;
获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数;
根据获取的最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID;
根据预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间;
当到达所述下次资源调整的时间时,根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源。
结合第一方面,在第一方面的第一种可能的实施方式中,所述获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的工作负载取值范围之前,所述方法还包括:
根据所述应用的实际的工作负载的历史数据识别应用的工作负载模式,为每一个识别出的工作负载模式分配一个模式ID,并确定每一个识别出的工作负载模式的模式ID对应的描述信息;其中,所述模式ID对应的描述信息包含该模式ID对应的代表性工作负载和该模式ID对应的工作负载取值范围。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述方法还包括:记录所述应用的工作负载的模式概述和实际的模式转换的历史数据;其中,所述工作负载的模式概述包含所述每一个识别出的工作负载模式的模式ID和所述每一个识别出的工作负载模式的模式ID对应的描述信息。
结合第一方面的第一种可能的实施方式和第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述根据所述应用的实际的工作负载的历史数据识别应用的工作负载模式,并确定每一个识别出的工作负载模式的模式ID对应的描述信息具体包括:获取所述应用的实际的工作负载的历史数据;将所述应用的实际的工作负载的历史数据分为K个聚类;给所述K个聚类中的每个聚类分配一个标识作为模式ID,所述K个聚类与应用的K个工作负载模式一一对应;确定所述应用的每一个工作负载模式的工作负载取值范围;根据允许的服务等级协议SLA违反率为每个所述模式ID对应的工作负载模式确定代表性工作负载。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,在所述根据允许的服务等级协议SLA违反率为每个所述模式ID对应的工作负载模式确定代表性工作负载之后,所述方法还包括:根据资源增加所需要的时间对所述K个工作负载模式进行合并处理。
结合第一方面至第一方面的第四种可能的实施方式中的任一项,在第一方面的第五种可能的实施方式中,所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值中的最大值和最小值,所述根据所述应用的当前采样时刻的实际工作负载和所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前工作负载模式发生模式转换具体包括:确定当前采样时刻的实际工作负载大于所述最大值,或者小于所述最小值;或
所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值的平均值以及对应的阈值,所述根据所述应用的当前采样时刻的实际工作负载和所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前工作负载模式发生模式转换具体包括:计算所述当前采样时刻的实际工作负载与所述平均值的差值的绝对值,确定所述绝对值超出所述阈值;其中,所述对应的阈值为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的各采样时刻的工作负载取值与所述平均值的最大差值。
结合第一方面至第一方面的第五种可能的实施方式中的任一项,在第一方面的第六种可能的实施方式中,根据所述应用的当前采样时刻的实际工作负载与所述模式概述中所有的工作负载模式对应的工作负载取值范围,确定所述应用的当前实际工作负载落入某个模式对应的工作负载取值范围内,获取该确定的模式的模式ID作为所述最近的一次实际的模式转换后的模式ID;以及获取所述最近的一次实际的模式转换发生的时刻和上次实际的模式转换发生的时刻的时间差作为所述最近的一次实际的模式转换前的模式的持续时间;
从实际的模式转换的历史数据中获取除所述最近的一次实际的模式转换数据之外的m-1次实际的模式转换数据。
结合第一方面的第二种可能的实施方式至第一方面的第六种可能的实施方式中的任一项,在第一方面的第七种可能的实施方式中,所述根据所述预测得到的下次模式转换前的模式的持续时间、所述预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间具体包括:
根据所述应用的工作负载的模式概述,获取所述预测得到的下次模式转换后的模式ID对应的代表性工作负载和最近的一次实际模式转换后的模式ID对应的代表性工作负载;
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载大于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载;确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间再减去增加资源所需的时间;或
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载小于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载,确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间。
结合第一方面的第二种可能的实施方式至第一方面的第七种可能的实施方式中的任一项,在第一方面的第八种可能的实施方式中,所述根据所述预测得到的下次模式转换的模式ID,调整应用所需的资源具体包括:
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载超过所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定超过的工作负载所需的资源量,向第一资源池请求增加所述超过的工作负载所需的资源量;或
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载少于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定所述少于的工作负载所需的资源量;向所述第一资源池清求减少所述少于的工作负载所需的资源量;
其中,所述第一资源池包含处于停止状态的服务器/虚拟机,用于根据所述资源量进行资源调整。
结合第一方面的第二种可能的实施方式至第一方面的第八种可能的实施方式中的任一项,在第一方面的第九种可能的实施方式中,所述根据所述预测得到的下次模式转换的模式ID,调整应用所需的资源具体还包括:
确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻晚于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载所需的资源量;或
确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻早于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于所述当前采样时刻之前所述应用的实际的工作负载模式的模式ID对应的代表性工作负载的工作负载所需的资源量;其中,所述第二资源池包含处于准备就绪状态的服务器或虚拟机。
第二方面,本发明实施例提供了一种计算环境中调整应用所需资源的装置,包括:
第一获取模块,用于获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式标识ID对应的工作负载取值范围;
第一确定模块,用于根据所述第一获取模块获取的当前采样时刻的实际工作负载和当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;
第二获取模块,用于获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数;
预测模块,用于根据所述第二获取模块获取的最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间预和下次模式转换后的模式ID预测值;
第二确定模块,用于根据所述预测模块预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间;
调整模块,用于当到达所述下次资源调整的时间时,根据所述预测模块预测得到的下次模式转换后的模式ID,调整应用所需的资源。
结合第二方面,在第二方面的第一种可能的实施方式中,所述装置还包括:识别模块,用于根据所述应用的实际的工作负载的历史数据识别应用的工作负载模式,为每一个识别出的工作负载模式分配一个模式ID,并确定每一个识别出的工作负载模式的模式ID对应的描述信息;其中,所述模式ID对应的描述信息包含该模式ID对应的代表性工作负载和该模式ID对应的工作负载取值范围。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述装置还包括:记录模块,用于记录所述应用的工作负载的模式概述和实际的模式转换的历史数据;其中,所述工作负载的模式概述包含所述每一个识别出的工作负载模式的模式ID和所述每一个识别出的工作负载模式的模式ID对应的描述信息。
结合第二方面的第一种可能的实施方式和第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述识别模块,具体用于获取所述应用的工作负载的历史数据;将所述应用的实际的工作负载的历史数据分为K个聚类;给所述K个聚类中的每个聚类分配一个标识作为模式ID,所述K个聚类与应用的K个工作负载模式一一对应;确定所述应用的每一个工作负载模式的工作负载取值范围;根据允许的服务等级协议SLA违反率为每个所述模式ID对应的工作负载模式确定代表性工作负载。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述识别模块,还用于根据资源增加所需要的时间对所述K个工作负载模式进行合并处理。
结合第二方面至第二方面的第四种可能的实施方式中的任一项,在第二方面的第五种可能的实施方式中,所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值中的最大值和最小值,则所述第一确定模块,具体用于确定当前采样时刻的实际工作负载大于所述最大值,或者小于所述最小值;或
所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值的平均值以及对应的阈值,则所述第一确定模块,具体用于计算所述当前采样时刻的实际工作负载与所述平均值的差值的绝对值,确定所述绝对值超出所述阈值;其中,所述对应的阈值为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的各采样时刻的工作负载取值与所述平均值的最大差值。
结合第二方面至第二方面的第五种可能的实施方式中的任一项,在第二方面的第六种可能的实施方式中,所述第二获取模块,具体用于根据所述第一获取模块获取的应用的当前采样时刻的实际工作负载与所述模式概述中所有的工作负载模式对应的工作负载取值范围,确定所述应用的当前实际工作负载落入某个模式对应的工作负载取值范围内,获取该确定的模式的模式ID作为所述最近的一次实际的模式转换后的模式ID;以及获取所述最近的一次实际的模式转换发生的时刻和上次实际的模式转换发生的时刻的时间差作为所述最近的一次实际的模式转换前的模式的持续时间;从实际的模式转换的历史数据中获取除所述最近的一次实际的模式转换数据之外的m-1次实际的模式转换数据。
结合第二方面的第二种可能的实施方式至第二方面的第六种可能的实施方式中的任一项,在第二方面的第七种可能的实施方式中,所述第二确定模块,具体用于根据所述记录模块记录的应用的工作负载的模式概述,获取所述预测得到的下次模式转换后的模式ID对应的代表性工作负载和最近的一次实际模式转换后的模式ID对应的代表性工作负载;
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载大于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载;确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间再减去增加资源所需的时间;或
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载小于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载,确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间。
结合第二方面的第二种可能的实施方式至第二方面的第七种可能的实施方式中的任一项,在第二方面的第八种可能的实施方式中,所述调整模块,具体用于确定预测得到的下次模式转换后的模式ID对应的代表性工作负载超过所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定超过的工作负载所需的资源量,向第一资源池请求增加所述超过的工作负载所需的资源量;或
确定预测得到的下次模式转换后的模式ID对应的代表性工作负载少于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定所述少于的工作负载所需的资源量;向所述第一资源池清求减少所述少于的工作负载所需的资源量;
其中,所述第一资源池包含处于停止状态的服务器/虚拟机,用于根据所述资源量进行资源调整。
结合第二方面的第二种可能的实施方式至第二方面的第八种可能的实施方式中的任一项,在第二方面的第九种可能的实施方式中,所述调整模块,具体还用于确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻晚于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载所需的资源量;或
确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻早于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于所述当前采样时刻之前所述应用的实际的工作负载模式的模式ID对应的代表性工作负载的工作负载所需的资源量;其中,所述第二资源池包含处于准备就绪状态的服务器或虚拟机。
从本发明实施例提供的以上技术方案可以看出,云平台在确定应用的当前采样时刻的工作负载模式发生模式转换后,获取最近的m次实际的模式转换数据,然后将最近m次实际的模式转换数据输入到应用的工作负载的模式预测模型中,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。在预测的下次资源调整时间到来之前,云平台给应用分配的资源量保持不变,到预测的资源调整时间到来时,云平台给应用分配的资源量为预测得到的下次模式转换后的模式ID对应的代表性工作负载所需的资源量。本发明实施例中,云平台只有在当前工作负载发生模式转换时,才进行资源预测。这种基于模式的资源预测技术是根据应用工作负载的特点自适应选择预测间隔,解决了固定长度的预测窗口不适合应用整个运行过程,预测误差大的问题,从而使得资源分配更加准确。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的云计算环境中的资源分配方法的流程图;
图2为本发明一实施例采用聚类技术识别应用工作负载模式及确定工作负载模式的模式ID对应的描述信息的方法流程图;
图3为本发明一实施例提供的基于马尔科夫模型建立工作负载的模式预测模型的方法的流程图;
图4为本发明一实施例提供的带有异常处理功能的云平台架构各功能模块的交互流程图;
图5为本发明一实施例提供的带有异常处理功能的资源分配方法的流程图;
图6为本发明提供的云计算环境中调整应用所需资源的装置实施例一的结构示意图;
图7为本发明提供的云计算环境中调整应用所需资源的装置实施例二的结构示意图;
图8为本发明提供云计算环境中调整应用所需资源的设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对非周期应用,本发明一实施例提供了一种云计算环境中调整应用所需资源的方法即装置,这种资源预测方法基于应用工作负载的特点自适应选择预测间隔,解决了固定长度的预测窗口不适合应用整个运行过程,从而导致资源调整不准确的问题。
我们对本发明中提到的资源预测做进一步的说明。资源预测就是根据应用工作负载/资源需求的历史数据,预测应用的未来的工作负载/资源需求。如果资源预测的对象是应用的工作负载,预测到应用的工作负载后,云平台再根据应用的性能模型进行应用的工作负载到资源需求的转换。其中,根据应用的性能模型进行应用的工作负载到资源需求的转换为本领域技术人员所熟知的内容,所以本发明不再赘述。这里资源需求指应用需要的某一类型的物理资源(如CPU、内存)或某一类型的虚拟机的数量。应用的工作负载可以是应用中的用户数、并发请求数和/或请求响应时间等。而不管资源预测对象是应用的工作负载还是应用的资源需求,所采用的预测技术都是一样的。两者的区别主要在于应用场景。如果资源预测发生在资源层,则云平台可以监控应用实际的资源需求,所以可以对应用的资源需求进行预测;然而当资源预测发生在服务层时,云平台可能无法监控应用实际的资源需求,只能监控应用的工作负载,所以是对应用的工作负载进行预测。
本发明中,为了描述简单,预测对象为应用的工作负载,然而本发明所述的方法同样适合于预测对象为应用的资源需求。
下面结合附图对本申请优选的实施方式进行详细说明。
参见图1,图1描述了本发明一个实施例提供的云计算环境中调整应用所需资源的方法的流程,该实施例描述的是云平台的处理流程,主要用于向运行在该云平台上的应用进行资源预测,并根据预测结果对应用所需要的资源进行调整,包括:
步骤101:获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式ID对应的工作负载取值范围。
其中,应用的工作负载可以为:应用中的用户数、并发请求数和/或请求响应时间等。应用的每一个工作负载模式用一个模式ID唯一标识,并对应唯一的代表性工作负载和工作负载取值范围。该模式ID对应的工作负载取值范围可以是该模式对应的所有采样时刻的工作负载取值中的最大值和最小值,也可以是该模式对应的所有采样时刻的工作负载取值的平均值和对应的阈值,所述阈值为该模式对应的各采样时刻的工作负载取值与所述平均值的最大差值。一个工作负载模式对应至少两个采样时刻,每个采样时刻的工作负载取值虽然接近,但并不完全相同。为了避免频繁的资源调整,需要选择一个固定的工作负载取值来代表该工作负载模式的工作负载,该固定的工作负载也就是所述代表性工作负载。
具体的,云平台对应用的实际工作负载进行监控,每隔一个采样间隔获取应用的当前采样时刻实际工作负载以及当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的工作负载取值范围。采样间隔可以由云平台管理员来确定,可以是一个固定的时间长度,比如说2秒。其中,当前采样时刻的实际工作负载是实时获取的,而当前采样时刻之前所述应用的实际的工作负载模式的模式ID对应的工作负载取值范围是云平台记录保存的数据。
具体的,云平台记录并维护应用的工作负载的模式概述(Profile)和实际的模式转换的历史数据,用于建立应用的工作负载的模式预测模型。其中,所述模式概述包含云平台记录的应用的所有工作负载模式的模式ID和每一个工作负载模式的模式ID对应的描述信息。每一个工作负载模式的模式ID对应的描述信息包含该模式ID对应的代表性工作负载和该模式ID对应的工作负载取值范围。当获得应用的当前采样时刻之前所述应用实际的工作负载模式的模式ID后,云平台通过所述模式概述,可以获知该模式ID对应的描述信息,进一步的,从所述描述信息中获取该模式ID对应的工作负载取值范围。
步骤102:根据所述当前采样时刻的实际工作负载和所述当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换。
具体的,如果所述工作负载取值范围为该模式对应的所有采样时刻的工作负载取值中的最大值和最小值,确定当前采样时刻的实际工作负载大于该模式对应的所有采样时刻的工作负载取值中的最大值,或者小于该模式对应的所有采样时刻的工作负载取值中的最小值,则确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;反之,则没有发生模式转换。如果所述工作负载取值范围为该模式对应的所有采样时刻的工作负载取值的平均值以及对应的阈值,则计算所述当前采样时刻的实际工作负载与该平均值的差值的绝对值,如果该绝对值超出该阈值,则确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;反之,则没有发生模式转换。
如果没有发生模式转换,则不需要进行资源预测。等待下一采样时刻重新判断应用的实际工作负载模式是否发生了模式转换。
步骤103:获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数。
具体的,根据步骤102确定当前采样时刻的实际工作负载发生模式转换后,获取最近的m次实际的模式转换数据。其中,最近的一次实际的模式转换数据也就是步骤102中模式转换数据,包括:将步骤101中获取的应用的当前采样时刻的实际工作负载依次与模式概述中各模式对应的工作负载取值范围进行比较后,可以确定最近的一次实际的模式转换后的模式ID;计算最近的一次实际的模式转换发生的时刻和该模式转换的上一次实际的模式转换发生的时刻之间的时间差,可以确定该模式转换前的模式的持续时间。进一步的,将最近的一次实际的模式转换数据记录下来,并加入到实际的模式转换的历史数据中。在最近的m次实际的模式转换数据中,除最近的一次实际的模式转换数据,需要获取的其它的m-1个实际的模式转换数据可以直接从实际的模式转换的历史数据中获取。其中,m是一个正整数,其取值可以由算法设计者根据经验预先设定,也可以由云平台管理员在使用中设定。作为一个例子,由云平台管理员指定一个m值,比如m=2。然后云平台管理员验证在m=2时该工作负载的模式预测模型是否准确。如果预测模型准确,则m=2;否则,设置m=m+1,即m=3,重新验证该新模型是否准确,直到找到一个m值使得预测模型是准确的为止。云平台记录并保存m的取值。当发生模式转换的时候,云平台根据m的值,获取最近的m次实际的模式转换数据进行资源预测。
步骤104:根据获取的最近的m次实际的模式转换数据以及所述模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。
应用的工作负载的模式预测模型可以基于不同的数学模型来建立,例如,在本发明的实施例中,应用的工作负载的模式预测模型可以基于马尔科夫模型建立,马尔科夫模型的基本思想是系统的下一个状态与当前的状态有关。在该实施例中,我们将m次实际的模式转换当成一个状态,并用该m次实际的模式转换数据来描述这个状态,m是一个正整数。因此,基于应用的工作负载的模式预测模型预测下次模式转换前的模式的持续时间和下次模式转换后的模式ID,就是将最近的m次实际的模式转换数据输入到应用的工作负载的模式预测模型中,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。
步骤105:根据预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间。
具体的,在所述预测得到的下次模式转换前的模式的持续时间内,应用需要的资源量保持不变;在所述预测得到的下次模式转换前的模式的持续时间之后,应用需要的资源量会随着模式转换而发生改变。因此,为了让应用及时获取适当的资源,需要根据所述预测得到的下次模式转换前的模式的持续时间,确定下次资源调整的时间。如果不考虑资源增加所需的时间,则当前时刻加上所述预测得到的下次模式转换前的模式的持续时间后的时刻即为下次资源调整的时间。所述资源增加所需的时间是指云平台从开始调度资源到这部分资源能够为应用提供服务所需要的时间。比如,云平台启动资源池中的虚拟机为应用提供资源时,资源增加所需的时间就是指这部分虚拟机从启动到准备就绪所需要的时间。可选的,在本发明的实施例中还考虑了资源增加所需的时间,这种情况下则需要云平台管理员设置资源增加所需的时间,并且结合预测得到的下次模式转换后的模式ID和最近的一次实际模式转换后的模式ID,来确定下次资源调整的时间。具体方法为:
根据应用的工作负载的模式概述,获取所述预测得到的下次模式转换后的模式ID对应的代表性工作负载和最近的一次实际模式转换后的模式ID对应的代表性工作负载;
判断所述预测得到的下次模式转换后的模式ID对应的代表性工作负载是否大于最近的一次实际模式转换后的模式ID对应的代表性工作负载;
如果所述预测得到的下次模式转换后的模式ID对应的代表性工作负载大于最近的一次实际模式转换后的模式ID对应的代表性工作负载,则表明需要增加资源,考虑到资源增加需要时间,下次资源调整时间为当前时刻加上所述预测得到的下次模式转换前的模式的持续时间再减去资源增加所需的时间;
如果所述预测得到的下次模式转换后的模式ID对应的代表性工作负载小于最近的一次实际模式转换后的模式ID对应的代表性工作负载,则下次资源调整时间为当前时刻加上所述预测得到的下次模式转换前的模式的持续时间。
步骤106:当到达所述下次资源调整的时间时,根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源。
具体的,如步骤101所述,每个模式ID对应唯一的代表性工作负载。根据步骤101中提到的应用的工作负载的模式概述,可以获得所述预测得到的下次模式转换后的模式ID对应的代表性工作负载。在步骤105中确定的下次资源调整时间到达之前,云平台给应用分配的资源量保持不变;当到达下次资源调整时间时,云平台给应用分配的资源量为所述预测得到的下次模式转换后的模式ID对应的代表性工作负载所需的资源量。
之后返回继续执行步骤101,直到应用停止或者云平台停止。
从上可知,本实施例中云平台在确定应用的当前采样时刻的工作负载模式发生模式转换后,获取最近的m次实际的模式转换数据,然后将最近m次实际的模式转换数据输入到应用的工作负载的模式预测模型中,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。在预测的下次资源调整时间到来之前,云平台给应用分配的资源量保持不变,到预测的资源调整时间到来时,云平台给应用分配的资源量为所述预测得到的下次模式转换后的模式ID对应的代表性工作负载所需的资源量。本发明实施例中,云平台只有在当前工作负载发生模式转换时,才进行资源预测。这种基于模式的资源预测技术是根据应用工作负载的特点自适应选择预测间隔,解决了固定长度的预测窗口不适合应用整个运行过程,预测误差大的问题,从而使得资源分配更加准确。
为了更清楚地描述图1所描述的实施例中的步骤101、步骤102和步骤103,下面举一个基于K-mean聚类来识别应用工作负载模式及确定工作负载模式ID对应的描述信息的方法。图2描述了采用聚类技术识别应用工作负载模式及确定工作负载模式的模式ID对应的描述信息的流程图,包括:
步骤201:获取应用的工作负载的历史数据。
应用的工作负载的历史数据是应用的过去(包括当前采样时刻)工作负载的所有采样组成的时间序列。比如说,可以是对应用监控一段时间(比如一天或一星期),直到云平台管理员觉得已经得到了足够的工作负载的数据。具体来说,云平台管理员观察一段时间内应用的工作负载,人工识别这段时间内应用的工作负载模式。如果从某一时间点开始,很长一段时间内云平台管理员没有识别到新的工作负载模式,就可以认为已经得到足够的工作负载数据。同时云平台管理员可以记录自己识别出的工作负载模式的个数。具体的采样方法以及如何获取应用的工作负载历史数据,本发明实施例不做限定。
进一步地,云平台管理员可以选择一组可以代表应用的工作负载的特征。如前所述,可以采用不同的特征来表示应用的工作负载。为了简单起见,本实施例选择应用的并发请求数来表示应用的工作负载。获取应用的工作负载历史数据,就是获取监控时间内所有采样时刻的应用的并发请求数。
步骤202:根据所述应用的工作负载的历史数据,确定聚类个数K。
具体的,一个工作负载模式对应一个聚类。聚类个数可以由管理员通过观察应用的工作负载的历史数据确定。具体的,该聚类个数可以是步骤201中云平台管理员自己识别出的工作负载模式的个数。
步骤203:从所有数据对象中任意选择K个数据对象作为K个初始聚类中心。
一个数据对象是一个采样时刻应用的工作负载,本实施例中即一个采样时刻的应用的并发请求数。所有数据对象即监控时间内,所有采样时刻应用的并发请求数。
步骤204:对于所有数据对象,根据它们与所述K个初始聚类中心的相似度,分别将它们分配给与其最相似的一个初始聚类中心所代表的聚类,形成K个更新的聚类。然后计算所述K个更新的聚类中每个聚类的聚类中心,得到K个更新聚类中心。
具体的,数据对象与初始聚类中心的相似度可以通过两者之间的距离进行衡量,比如欧几里得距离。而所述K个更新聚类中心可以是每一个更新的聚类中所有数据对象的均值。
步骤205:判断各聚类是否发生变化。
聚类不变是指各个聚类中心所在的聚类中的数据对象保持不变。
如果发生变化,则将所述K初始聚类中心设置成所述K个更新聚类中心,重复执行步骤204;如果不发生变化,则执行步骤206。
步骤201至205用于根据K-mean聚类算法对应用的工作负载的历史数据进行聚类,得到K个聚类。
步骤206:每个聚类对应应用的一个工作负载模式,给每个聚类分配一个标识作为工作负载模式的模式ID。
具体的,执行步骤206时,应用的工作负载的历史数据被分成了K个聚类,每个聚类包含多个数据对象,一个数据对象是一个采样时刻应用的工作负载,本实施例中即一个采样时刻的应用的并发请求数。每个聚类对应应用的一个工作负载模式。也就是说,应用具有K个工作负载模式,每个工作负载模式由一个模式ID唯一标识。
步骤207:确定各模式的工作负载取值范围。
可选的,本实施例中,模式的工作负载取值范围可以是该模式对应聚类中最大的数据对象、最小的数据对象,即该模式对应聚类中应用并发请求数的最大值、最小值;也可以为该模式对应的聚类的聚类中心和对应的阈值,聚类中心是该模式对应聚类中所有采样时刻的数据对象的均值,也就是所有采样时刻的应用并发请求数的均值。所述阈值为对应的聚类中所有采样时刻的数据对象与该聚类的聚类中心之间的最大差值,也就是所有采样时刻的应用并发请求数与所有采样时刻的应用并发请求数的均值之间的最大差值。
步骤208:根据允许的SLA违反率为每个工作负载模式选择代表性工作负载。
可选的,在本发明实施例中,对资源的调整是基于应用的工作负载模式对应的代表性工作负载进行的。
具体的,SLA违反率可以由云计算服务提供商和应用所有者在签订SLA时协商确定。在每个工作负载模式对应的工作负载取值范围内,SLA违反率决定了该模式对应的代表性工作负载的取值。具体的,假设一个工作负载模式对应w个采样时刻,对w个采样时刻的工作负载取值进行从小到大排序,确定排在第[w*(1-SLA违反率)]位的采样时刻对应的工作负载,即为该模式的代表性工作负载。其中[w*(1-SLA违反率)]代表对w*(1-SLA违反率)的值进行向上取整操作。比如SLA违反率为0,则为每个模式选择代表性工作负载时,模式的代表性工作负载为排在第w*(1-0)=w位的工作负载的取值,即工作负载模式的工作负载取值范围中的最大值;SLA违反率为10%,则为每个模式选择代表性工作负载时,需要对每个模式对应的w个采样时刻的工作负载取值进行从小到大排序,则排在第[w*90%]位的采样时刻对应的工作负载取值就是该模式对应的代表性工作负载。此时,每个模式ID对应一个代表性工作负载。
根据上述方法识别应用工作负载模式及工作负载模式的模式ID对应的描述信息,可以确定应用的工作负载的模式概述。云平台保存所述工作负载的模式概述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。比如说图2中,步骤206、步骤207以及步骤208可能是同时进行的。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
下面结合图2所述的流程,来进一步说明图1描述实施例中步骤102和步骤103的一种可能的具体实现方法:
也就是说,根据应用的当前采样时刻的实际工作负载与当前采样时刻之前的实际工作负载模式的模式ID对应的工作负载取值范围,确定应用的当前采样时刻的工作负载模式发生模式转换,以及获取最近的一次实际的模式转换数据,具体为:
如果模式的工作负载取值范围是该模式对应的所有采样时刻的工作负载取值中的最大值和最小值,即该模式对应的所有采样时刻并发请求数的最大值、最小值,确定应用的当前采样时刻的并发请求数大于所述最大值,或者小于所述最小值,则确定应用的当前采样时刻的工作负载模式发生模式转换。当确定应用的当前采样时刻的工作负载发生模式转换后,获取最近的一次实际的模式转换数据。其中,最近的一次实际的模式转换数据也就是步骤102中模式转换的数据。获取最近的一次实际的模式转换数据具体为:依次比较应用的当前采样时刻的并发请求数与模式概述中各模式对应的并发请求数最大值和最小值。如果应用的当前采样时刻的并发请求数比模式概述中某个模式ID对应的并发请求数的最大值小并且比相应的最小值大,则该模式ID即为最近的一次实际的模式转换后的模式ID。
如果模式的工作负载取值范围为该模式对应的所有采样时刻的工作负载取值的平均值和对应的阈值,则计算应用的当前采样时刻的并发请求数与该平均值的差值的绝对值。其中,所述阈值是指该模式对应的所有采样时刻的并发请求数取值与所述平均值的最大差值。如果该绝对值大于该阈值,则确定所述应用的当前采样时刻的工作负载模式发生模式转换。依次计算应用的当前采样时刻的并发请求数与模式概述中各模式ID对应的平均值的差值的绝对值,与应用的当前采样时刻的并发请求数的差值的绝对值最小的那个平均值对应的模式ID即为最近的一次实际模式转换后的模式ID。
此外,当确定应用的当前采样时刻的工作负载模式发生模式转换后,该次模式转换就是最近的一次实际的模式转换。计算最近的一次实际的模式转换发生的时刻和该次模式转换的上一次实际模式转换发生的时刻的时间差,可以确定最近的一次实际的模式转换前的模式的持续时间。最近的一次实际的模式转换数据包含最近的一次实际的模式转换前的模式的持续时间和最近的一次实际的模式转换后的模式ID。
进一步的,为了更准确的确定最近的一次实际的模式转换后的模式ID,可以选择将最近的一次实际模式转换发生时刻起连续n个采样时刻应用的工作负载重复上述的步骤,n为一个正整数,一般可以取2或3,具体大小跟采样频率有关。采样频率越低,则n取值越小,具体取值由云平台管理员设定。如果按上述方法确定的模式ID均相同,则确定的模式ID即为最近的一次实际模式转换后的模式ID。
进一步的,在云计划环境下,云平台调度资源池中的资源需要一定的时间。比如,从启动资源池中的虚拟机到该虚拟机可以为应用服务,是需要时间的,这个时间就是云平台增加资源所需要的时间。为了保证应用在工作负载突发式增加时也能获得所需的资源,可以在上述应用工作负载模式识别中加入云平台资源增加所需时间的限制,根据云平台资源增加所需时间的限制对得到的工作负载模式进行合并处理。假设资源增加所需的时间为T,而预测的当前模式持续的时间如果小于T,那么就意味着即使当前时刻立刻进行资源调度分配,那么下次模式转换时,应用也不能及时得到所需的资源。
事实上,在完成步骤201至步骤208所述的流程后,应用的工作负载的历史数据被分解成K个连续的、不相交的时间段,同时每个时间段对应唯一的模式,并且任意两个相邻时间段对应的模式都不同。由于资源分配开销来自增加资源,所以进一步可以根据模式转换趋势和资源增加所需的时间,对上述连续的、不相交的并且持续时间小于T的时间段进行合并处理,以保证在应用工作负载突发式增加时能获得所需的资源。下面描述一种合并处理的方法:
对上述方法得到的K个时间段进行编号,假设应用的工作负载的历史数据被分解成连续的时间段0、时间段1、……、时间段K;其中,每个时间段对应一个工作负载模式,K为根据应用的工作负载的历史数据识别的工作负载模式的个数。从时间段0到时间段K依次可以进行如下处理:
如果时间段i的代表性工作负载小于时间段i+1的代表性工作负载,并且时间段i的持续时间小于T,则合并时间段i和时间段i+1,将合并后的时间段编号为i+1,并将合并后时间段的工作负载模式设为时间段i+1的工作负载模式。
再对合并后的时间段i+1重复上述操作,直到下一个时间段的代表性工作负载小于当前时间段的代表性工作负载或者当前时间段的持续时间大于T为止。
其中,i依次取0至K-1之间的整数(i的取值包括0和K-1),直到所有时间段都处理完毕。
针对模式的持续时间,引入云平台资源增加所需时间的限制,可以有效的保证在应用工作负载突发式增加时也能获得所需的资源。
为了便于理解,对图1描述的实施例步骤104中涉及的应用的工作负载的模式预测模型进行进一步的描述。图3描述了本发明一实施例提供的基于马尔科夫模型建立工作负载的模式预测模型的方法的流程图。本实施例描述了一种基于马尔科夫模型建立工作负载的模式预测模型的方法。马尔科夫模型的基本思想是系统下一个状态与当前的一个状态有关。本发明实施例中模式转换预测的关键是能够预测模式转换在什么时候发生并提前预测会转换到的工作负载模式。因此本发明实施中,我们将m次模式转换当成一个状态,并用该m次实际的模式转换数据来描述这个状态,m是一个正整数。因此,基于应用的工作负载的模式预测模型预测下次模式转换前的模式的持续时间和下次模式转换后的模式ID,就是将最近的m次实际的模式转换数据输入到应用的工作负载的模式预测模型中,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。
具体的,根据应用的工作负载的实际模式转换的历史数据,可以按如下所述的方法建立工作负载的模式预测模型。
具体的,预测模型包括很多条目。其中,每一个条目包括索引和预测结果。索引包括m次实际的模式转换数据,预测结果为下一次模式转换数据。其中m是一个正整数,其取值可以由算法设计者根据经验预先设定,也可以由云平台管理员在使用中设定。作为一个例子,由云平台管理员指定一个m值,比如m=2。然后云平台管理员验证在m=2时该工作负载的模式预测模型的精确度,即先不将模型用于资源分配,只是对下一次模式转换数据进行预测并与下一次实际的模式转换数据进行比较。比如说,当前采样时刻的工作负载模式发生模式转换,则云平台预测下一次模式转换数据;当下一次模式转换发生时,获取实际的模式转换数据,然后将两者进行比较。其中,实际的模式转换数据的获取方法与步骤103中所说的获取最近的一次实际的模式转换数据相同。如果在连续一定次数(比如说10次)的预测中,预测到的下一次模式转换数据与下一次实际的模式转换数据均相同,则可以认为该工作负载的模式预测模型是精确的;否则,设置m=m+1,即m=3,重新验证该新模型的精确度,直到找到一个m值使得预测模型是精确的为止。云平台记录并保存m的取值。当发生模式转换的时候,云平台根据m的值,获取最近的m次实际的模式转换数据进行资源预测。
上述使用模型预测到的模式转换数据与实际的模式转换数据相同是指:资源预测得到的下次模式转换后的模式ID与实际的模式转换后的模式ID相同,以及资源预测得到的下次模式转换前的模式的持续时间和相应的实际模式转换前的模式的持续时间之间的差值的绝对值与该实际的模式转换前的模式的持续时间的比值小于预设值。具体的,比如这个预设值可以是0.01,具体的值由云平台管理员设置。
假设应用的工作负载的实际的模式转换的历史数据共包含p个实际的模式转换数据,即实际的模式转换的历史数据依次为:实际的模式转换数据1、实际的模式转换数据2、……实际的模式转换数据p。其中,p大于m。如图3所述,建立该模式预测模型的方法,包括:
步骤301:设置q=1。
步骤302:判断工作负载的模式预测模型中是否已经包含索引为实际的模式转换数据q,实际的模式转换数据q+1,……,以及实际的模式转换数据q+m-1这m次实际的模式转换数据,并且预测结果为实际的模式转换数据q+m的条目。
如果工作负载的模式预测模型中不包含这样的条目,则执行步骤303;如果工作负载的模式预测模型中已经包含这样的条目,则执行步骤304。
步骤303:在工作负载的模式预测模型中新建一个条目,该条目的索引包括实际的模式转换数据q,实际的模式转换数据q+1,……,实际的模式转换数据q+m-1这m次实际的模式转换数据,预测结果为实际的模式转换数据q+m。
步骤304:设置q=q+1。
步骤305:判断q是否等于p-m+1。如果否,则返回步骤302。如果是,则结束操作。
上述步骤执行结束后,即建立好工作负载的模式预测模型。
相应地,在图1给出的实施例步骤104的具体实现为:在工作负载的模式预测模型中查找索引中的m次实际的模式转换数据与最近的m次实际的模式转换数据一一对应相同的条目,得到该条目中的预测结果。该条目中的预测结果就是预测得到的下次模式转换数据,即预测得到的下次模式转换前的模式的持续时间和预测得到的下次模式转换后的模式ID。比如,m=2时,最近的2次实际的模式转换数据依次为:实际的模式转换数据A和实际的模式转换数据B。云平台在预测模型中查找索引依次为实际的模式转换数据A和实际的模式转换数据B的条目,该条中的预测结果就是这次资源预测得到的下次模式转换数据。
需要说明的是,为了便于理解应用的工作负载的模式预测模型的工作原理,本发明实施例中介绍了一种基于马尔科夫模型建立的应用的工作负载的模式预测模型。但是本发明中提到的工作负载的模式预测模型并不限于此,具体依据什么样的数学预测模型来建立应用的工作负载的模式预测模型,在本发明中不做限定。
此外,在本发明的实施例还提供了一种包含在预测错误情况下异常处理的资源调整方法。这种资源分配方法涉及到两个资源池,包括第一资源池和第二资源池。其中,第一资源池中是处于停止状态的服务器/虚拟机,用于根据资源预测结果进行资源分配。因为第一资源池中服务器/虚拟机处于停止状态,因此资源增加需要时间。因此,云平台请求第一资源池为应用分配资源时,需要考虑资源增加需要的时间,从而提前进行资源分配。第二资源池包括少量的处于准备就绪状态的服务器/虚拟机(服务器/虚拟机已经启动并配置好应用所需的运行环境),用于当实际工作负载超过预测的工作负载时进行资源增加。由于服务器/虚拟机已经处于就绪状态,所以增加资源只需要很少的时间。由于这部分服务器/虚拟机比较少,因此也不会给云平台增加太多的运营成本。此时,带有异常处理功能的云平台架构各功能模块的交互流程图如图4所示,资源预测器的工作流程图参见图5。下面我们结合图4和图5对包含异常处理的资源分配方法做进一步分析:
步骤401:监控器监控并记录应用的工作负载,获取应用的当前采样时刻的实际工作负载以及工作负载的历史数据。
其中,获取应用的工作负载的历史数据的具体实现可以参考图2实施例中的步骤201的相关描述,此处不再赘述。
步骤402:监控器将应用的工作负载的历史数据发送给资源预测器。
步骤403:资源预测器根据应用的工作负载的历史数据,识别应用的工作负载模式及确定工作负载模式的模式ID对应描述信息;记录应用的模式概述和实际的模式转换的历史数据;根据实际的模式转换的历史数据,建立应用的工作负载的模式预测模型。
其中,根据应用的工作负载的历史数据,识别应用的工作负载模式及确定工作负载模式的模式ID对应的描述信息,记录应用的模式概述的方法参见与图2对应的流程描述;根据实际的模式转换的历史数据,建立应用的工作负载的模式预测模型,参见图3所述实施例的相关描述,这里不再赘述。
步骤404:监控器将当前采样时刻的实际工作负载发送给资源预测器。
步骤405:资源预测器根据应用的当前采样时刻的实际工作负载和当前采样时刻之前的实际工作负载模式的模式ID对应的工作负载取值范围,确定应用的当前采样时刻的工作负载模式发生转换;根据最近的m次实际的模式转换数据以及工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。进一步的,根据应用的工作负载模式概述,可以获得所述预测得到的下次模式转换后的模式ID对应的代表性工作负载。
其中,确定应用的当前采样时刻的工作负载模式发生转换的方法参见图1所述实施例步骤102的相关描述;根据工作负载的模式预测模型得到所述预测得到的下次转换前的模式的持续时间和下次模式转换后的模式ID,参见图1所述实施例步骤104的相关描述,这里不再赘述。
步骤406:资源预测器将所述预测得到的下次模式转换前的模式的持续时间和所述预测得到的下次模式转换后的模式ID对应的代表性工作负载发送给预测控制器。
步骤407:预测控制器确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载所需要的资源以及下次资源调整的时间。
具体的,预测控制器可以实现工作负载与资源的转换。根据所述预测得到的下次模式转换后的模式ID对应的代表性工作负载,预测控制器根据该代表性工作负载对应的资源来调整应用所需的资源,比如说虚拟机的数量。
具体的,预测控制器根据资源预测器发送的所述预测得到的下次模式转换前的模式的持续时间、所述预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间。其中下次资源调整的时间的确定方法在图1所述的实施例步骤105中已经介绍,这里不再赘述。
步骤408:预测控制器将所述预测得到的下次模式转换后的模式ID对应的的代表性工作负载发送给协调器。
步骤409:当资源调整的时间到时,预测控制器请求第一资源池为应用调整所述预测得到的下次模式转换后的模式ID对应的代表性工作负载对应的资源所需的资源量。第一资源池启动或停止第一资源池中的服务器或虚拟机,使得第一资源池中为应用运行的服务器或虚拟机等于资源预测器预测得到的下次模式转换后的模式ID对应的代表性工作负载对应的资源所需的资源量。其中,第一资源池包含处于停止状态的服务器/虚拟机,用于根据资源预测器预测的资源量进行资源分配。
步骤410:监控器将监控到的应用的当前采样时刻的实际工作负载发送给协调器。
步骤411:协调器判断将当前采样时刻的实际工作负载是否超过所述预测得到的下次模式转换后的模式ID对应的代表性工作负载,如果超过,则将超额的工作负载发送给被动控制器,进入步骤412;否则,资源分配结束。
步骤412:当实际的工作负载来临时,被动控制器请求第二资源池为应用分配超额的工作负载部分对应的资源所需的资源量;所述超额的工作负载部分是指应用的当前采样时刻的实际工作负载与所述预测得到的下次模式转换后的模式ID对应的代表性工作负载的差值。
其中,被动控制器可以实现工作负载与资源的转换,即根据工作负载的值,为应用分配与该工作负载对应的资源,比如说虚拟机的数量;第二资源池包含处于准备就绪状态的服务器或虚拟机(服务器或虚拟机已经启动并配置好应用所需的运行环境),用于当实际工作负载超过预测的工作负载时,根据被动控制器确定的额外资源量进行资源增加。
需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。比如说图4中,步骤408可以在步骤407之前执行,步骤410、步骤404和步骤402同时执行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。其中,监控器、资源预测器、预测控制器、协调器、被动控制器、第一资源池以及第二资源池等功能模块均为云平台架构中的逻辑模块,它们在云平台内部的具体实现,在本发明中并不做限定。
参见图5,图5是包含异常处理的资源调整的方法流程图,该方法含有预测错误情况下的异常处理流程,并且支持对工作负载的模式预测模型的准确性进行检查并进行更新,包括:
步骤501:根据应用的工作负载的历史数据识别应用的工作负载模式,并确定各工作负载模式的模式ID对应的描述信息。
步骤502:记录应用的工作负载模式概述和实际的模式转换的历史数据。
步骤503:根据实际的模式转换的历史数据,建立应用的工作负载的模式预测模型。
该工作负载的模式预测模型用于在云平台确定应用的工作负载模式发生转换时,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。该工作负载的模式预测模型的输入是最近的m次实际的模式转换数据,输出是下一次模式转换数据的预测值。步骤503的具体实现方法参见图3所述的实施例描述,这里不再描述。
步骤504:根据当前采样时刻的实际工作负载和当前采样时刻之前应用的工作负载模式的模式ID对应的工作负载取值范围,判断应用的工作负载模式是否发生了模式转换,如果发生了转换,执行步骤505。如果没有发生转换,就等到下一个采样时刻再做上述判断。
判断应用的工作负载模式是否发生了模式转换的方法在图1所述的实施例中步骤102进行了介绍,这里不再赘述。
步骤505:获取并记录本次实际的模式转换数据。
具体的,本次实际的模式转换数据也就是最近的一次实际的模式转换数据,获取并记录本次实际的模式转换数据的方法与图1实施例中的步骤103相同,详细过程请参阅上文相关内容,这里不再赘述。
步骤501-505相应的实现在图1、图2以及图3所述的流程中已经介绍,详细过程请参阅上文相关内容,这里不再赘述。
步骤506:判断步骤505中本次实际的模式转换数据与上次实际的模式转换后进行资源预测得到的预测结果是否相同。如果相同,代表当前工作负载的模式预测模型是准确的,转到步骤507开始执行。如果不同,代表当前工作负载的模式预测模型出现误差,转到步骤508开始执行。
具体的,本次实际的模式转换数据与上次实际的模式转换后进行资源预测得到的预测结果相同包括:本次实际的模式转换后的模式ID与上次实际的模式转换后的进行资源预测得到的模式ID相同;而本次实际的模式转换前的模式的持续时间与上次实际的模式转换后进行资源预测得到模式的持续时间预测值两者相同是指,所述两者之间的差值的绝对值与该实际模式转换前的模式的持续时间的比值小于预设值,比如这个预设值可以是0.01,具体的值由云平台管理员设置。
步骤507:根据最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。
具体的,步骤507参见图1所述实施例步骤104的相关描述,这里不再赘述。
步骤508:判断步骤505得到的本次实际模式转换发生的时刻是否晚于根据上次实际模式转换后的预测结果确定的下次资源调整的时间。如果晚于,转到步骤510开始执行。否则,转到步骤509开始执行。
其中,如果骤505本次实际模式转换发生的时刻没有晚于根据上次预测结果确定的资源调整的时间,则表明最近的一次实际模式转换发生的时候,预测控制器还没有按上次的预测结果调整资源,所以立刻给预测控制器发通知,让预测控制器按当前采样时刻的工作负载模式对应的代表性工作负载为应用进行资源分配。所述当前采样时刻的工作负载模式是根据当前采样时刻的实际工作负载确定的。当前采样时刻的工作负载模式对应的代表性工作负载可以通过模式概述获得。预测控制器如果还没有完成资源调整,那么这个时候预测控制器分配出去的资源是上一次实际模式转换后预测的资源。实际需要的资源可能比这个多,超出的部分由被动控制器处理,通过向第二资源池请求资源来处理,所述第二资源池包含处于准备就绪状态的服务器或虚拟机(服务器或虚拟机已经启动并配置好应用所需的运行环境),用于当实际工作负载超过预测的工作负载时,根据被动控制器确定的额外资源量进行资源增加。具体处理方法参见图4所述实施例中步骤412的相关描述。如果骤505模式转换发生的时刻晚于根据上次预测结果确定的资源调整的时间,则表明实际模式转换发生的时候,预测控制器已经按上次预测结果分配资源了,则不需要通知预测控制器做处理,在最近的一次实际的模式转换后的模式的持续过程中,超出的部分都由被动控制器处理,通过向第二资源池请求资源来处理。
其中,根据预测结果确定下次资源调整的时间的方法在图1所述的实施例步骤105中已经描述,这里不再赘述。
步骤509:将步骤505得到的本次实际的模式转换后的模式ID对应的代表性工作负载发送给预测控制器,并通知预测控制器根据该代表性工作负载立即进行资源调整。
其中,预测控制器根据该代表性工作负载立即进行资源调整是指:预测控制器立即请求第一资源池为应用分配最近的一次实际的模式转换后进行资源预测得到的模式ID对应的代表性工作负载所需的资源量。第一资源池启动或停止第一资源池中的服务器或虚拟机,使得第一资源池中为应用运行的服务器或虚拟机等于该预测得到的模式ID对应的代表性工作负载对应的资源所需的资源量。其中,第一资源池包含处于停止状态的服务器/虚拟机,用于根据资源预测器预测的资源量进行资源分配。实际需要的资源可能比这个多,超出的部分由被动控制器处理,通过向第二资源池请求资源来处理,所述第二资源池包含处于准备就绪状态的服务器或虚拟机(服务器或虚拟机已经启动并配置好应用所需的运行环境),用于当实际工作负载超过预测的工作负载时,根据被动控制器确定的额外资源量进行资源增加。具体处理方法参见图4所述实施例中步骤412的相关描述。
步骤510:更新应用的工作负载的模式预测模型。
假设当前工作负载的模式预测模型中,索引包含m次实际的模式转换数据,则设置更新的工作负载的模式预测模型中,预测模型中的索引包含m+1次实际的模式转换数据,将包括最近的一次实际的模式转换数据在内的所有实际的模式转换数据作为实际的模式转换的历史数据,重新按图3所述的方法建立工作负载的模式预测模型。
步骤511:根据更新后的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。步骤511参见图1所述实施例步骤104的相关描述,这里不再赘述。
步骤512:将所述预测得到的下次模式转换前的模式的持续时间和所述预测得到的下次模式转换后的模式ID发送给预测控制器。
具体的,预测控制器可以实现工作负载与资源的转换。根据所述预测得到的下次模式转换后的模式ID对应的代表性工作负载,预测控制器可以为应用调整与该代表性工作负载对应的资源,比如说虚拟机的数量。
预测控制器根据所述预测得到的下次模式转换前的模式的持续时间、所述预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间。其中下次资源调整的时间的确定方法在图1所述的实施例步骤105中已经介绍,这里不再赘述。
当资源调整的时间到时,预测控制器请求第一资源池为应用调整上次实际的模式转换后进行资源预测得到模式ID对应的代表性工作负载对应的资源所需的资源量。第一资源池启动或停止第一资源池中的服务器或虚拟机,使得第一资源池中为应用运行的服务器或虚拟机等于该预测得到的模式ID对应的代表性工作负载对应的资源所需的资源量。其中,第一资源池包含处于停止状态的服务器/虚拟机,用于根据资源预测器预测的资源量进行资源调整。
从上可知,本实施例中云平台在确定应用的工作负载模式发生了模式转换后,获取本次模式转换数据,然后将最近m次实际模式转换的数据输入到应用的工作负载的模式预测模型中,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID。在下次资源调整的时间到达之前,云平台给应用分配的资源量保持不变,到预测到的下次资源调整的时间到达时,云平台给应用调整的资源量为所述预测得到的下次模式转换后的模式ID对应的代表性工作负载所需的资源量。另外,该方法包含了一种在预测错误情况下的异常处理,并且支持对工作负载的模式预测模型的准确性进行检查并进行更新。这种基于模式的资源预测技术是基于应用工作负载的特点自适应选择预测间隔,解决了固定长度的预测窗口不适合应用整个运行过程,从而导致预测的不准确的问题,可以减少不合理的资源分配导致的运营成本和风险。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
参见图6,图6描述了本发明提供的云计算环境中调整应用所需资源的装置实施例一的结构示意图。如图6所示,该装置包括:第一获取模块62、第一确定模块63、第二获取模块64、预测模块65、第二确定模块66和调整模块67;其中,
第一获取模块62,用于获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式标识ID对应的工作负载取值范围;
第一确定模块63,用于根据所述获取模块获取的当前采样时刻的实际工作负载和当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;
第二获取模块64,用于获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数;
预测模块65,用于根据所述第二获取模块获取的最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID;
第二确定模块66,用于根据预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间;
调整模块67,用于当到达所述下次资源调整的时间时,根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源。
具体的,所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值中的最大值和最小值,则所述第一确定模块63,具体用于确定当前采样时刻的实际工作负载大于所述最大值,或者小于所述最小值;或所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值的平均值以及对应的阈值,所述第一确定模块63,具体用于计算所述当前采样时刻的实际工作负载与所述平均值的差值的绝对值,确定所述绝对值超出所述阈值;其中,所述对应的阈值为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的各采样时刻的工作负载取值与所述平均值的最大差值。
可选的,所述第二获取模块64,具体用于根据所述应用的当前采样时刻的实际工作负载与所述模式概述中所有的工作负载模式对应的工作负载取值范围,确定所述应用的当前实际工作负载落入某个模式对应的工作负载取值范围内,获取该确定的模式的模式ID作为所述最近的一次实际的模式转换后的模式ID;以及获取所述最近的一次实际的模式转换发生的时刻和上次实际的模式转换发生的时刻的时间差作为所述最近的一次实际的模式转换前的模式的持续时间;从实际的模式转换的历史数据中获取除所述最近的一次实际的模式转换数据之外的m-1次实际的模式转换数据。
本发明实施例提供的装置,可以执行上述调整应用所需资源的方法实施例,其实现原理和技术效果类似,在此不再赘述。
参见图7,图7描述了本发明提供的云计算环境中调整应用所需资源的装置实施例二的结构示意图。在图6所述实施例的基础上,进一步的,该装置还包括:识别模块61,用于根据所述应用的实际的工作负载的历史数据识别应用的工作负载模式,为每一个识别出的工作负载模式分配一个模式ID,并确定每一个识别出的工作负载模式的模式ID对应的描述信息;其中,所述模式ID对应的描述信息包含该模式ID对应的代表性工作负载和该模式ID对应的工作负载取值范围。
具体的,所述识别模块61,具体用于获取所述应用的工作负载的历史数据;将所述应用的实际的工作负载的历史数据分为K个聚类;给所述K个聚类中的每个聚类分配一个标识作为模式ID,所述K个聚类与应用的K个工作负载模式一一对应;确定所述应用的每一个工作负载模式的工作负载取值范围;根据允许的服务等级协议SLA违反率为每个所述模式ID对应的工作负载模式确定代表性工作负载。
进一步的,所述识别模块61,还用于根据资源增加所需要的时间对所述K个工作负载模式进行合并处理。
进一步的,该装置还包括:记录模块60,用于记录所述应用的工作负载的模式概述和实际的模式转换的历史数据;其中,所述工作负载的模式概述包含所述每一个识别出的工作负载模式的模式ID和所述每一个识别出的工作负载模式的模式ID对应的描述信息。
具体的,第二确定模块66,具体用于根据所述应用的工作负载的模式概述,获取所述预测得到的下次模式转换后的模式ID对应的代表性工作负载和最近的一次实际模式转换后的模式ID对应的代表性工作负载;确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载大于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载;确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间再减去增加资源所需的时间;或确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载小于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载,确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间。
具体的,所述调整模块67,用于确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载超过所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定超过的工作负载所需的资源量,向第一资源池请求增加所述超过的工作负载所需的资源量;或确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载少于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定所述少于的工作负载所需的资源量;向所述第一资源池清求减少所述少于的工作负载所需的资源量;其中,所述第一资源池包含处于停止状态的服务器/虚拟机,用于根据所述资源量进行资源调整。
进一步的,所述调整模块67,还用于确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻晚于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载所需的资源量;或确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻早于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于所述当前采样时刻之前所述应用的实际的工作负载模式的模式ID对应的代表性工作负载的工作负载所需的资源量;其中,所述第二资源池包含处于准备就绪状态的服务器或虚拟机。
本发明实施例提供的装置,可以执行上述调整应用所需资源的方法实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,本发明图6和图7所述的实施例中,各模块是图4以及图5中所述实施例中的监控器、资源预测器等逻辑模块的一种可能的具体实现方式。具体的,所述第一获取模块、所述第一确定模块和所述第二获取模块,对应图4所述实施例中的监控器和资源预测器相关的功能;所述预测模块、所述识别模块和所述记录模块,对应图4所述实施例中的资源预测器相关的功能;第二确定模块,对应图4所述实施例中的预测控制器相关的功能;所述调整模块,对应图4所述实施例中的预测控制器、协调器、被动控制器、第一资源池以及第二资源池相关的功能。
上述装置和系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
参见图8,本发明实施例还提供云计算环境中调整应用所需资源的设备结构示意图,可包括:总线803、与总线803相连的处理器802以及与总线803相连的存储器801。处理器802可以采用通用的中央处理器(CentralProcessingUnit,CPU),微处理器,应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。存储器801可以是只读存储器(ReadOnlyMemory,ROM),静态存储设备,动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)。存储器801可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器801中,并由处理器802来执行。
具体的,所述处理器802和所述存储器801通过所述总线803进行通信;其中,所述存储器801中存有计算机可读程序;所述处理器802通过运行所述存储器801中的程序,以用于获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式标识ID对应的工作负载取值范围;根据所述当前采样时刻的实际工作负载和所述当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数;根据获取的最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID;根据预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间;当到达所述下次资源调整的时间时,根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源。
可以理解的是,本实施例的云计算环境中调整应用所需资源的设备可用于实现上述方法实施例中的功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (21)
1.一种云计算环境中调整应用所需资源的方法,其特征在于,
获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式标识ID对应的工作负载取值范围;
根据所述当前采样时刻的实际工作负载和所述当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;
获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数;
根据获取的最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID;
根据预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间;
当到达所述下次资源调整的时间时,根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源。
2.如权利要求1所述的方法,其特征在于,所述获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的工作负载取值范围之前,所述方法还包括:
根据所述应用的实际的工作负载的历史数据识别应用的工作负载模式,为每一个识别出的工作负载模式分配一个模式ID,并确定每一个识别出的工作负载模式的模式ID对应的描述信息;其中,所述模式ID对应的描述信息包含该模式ID对应的代表性工作负载和该模式ID对应的工作负载取值范围。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
记录所述应用的工作负载的模式概述和实际的模式转换的历史数据;其中,所述工作负载的模式概述包含所述每一个识别出的工作负载模式的模式ID和所述每一个识别出的工作负载模式的模式ID对应的描述信息。
4.如权利要求2或3所述的方法,其特征在于,所述根据所述应用的实际的工作负载的历史数据识别应用的工作负载模式,并确定每一个识别出的工作负载模式的模式ID对应的描述信息具体包括:
获取所述应用的实际的工作负载的历史数据;
将所述应用的实际的工作负载的历史数据分为K个聚类;
给所述K个聚类中的每个聚类分配一个标识作为模式ID,所述K个聚类与应用的K个工作负载模式一一对应;
确定所述应用的每一个工作负载模式的工作负载取值范围;
根据允许的服务等级协议SLA违反率为每个所述模式ID对应的工作负载模式确定代表性工作负载。
5.如权利要求4所述的方法,其特征在于,在所述根据允许的服务等级协议SLA违反率为每个所述模式ID对应的工作负载模式确定代表性工作负载之后,所述方法还包括:根据资源增加所需要的时间对所述K个工作负载模式进行合并处理。
6.如权利要求1-5任一所述的方法,其特征在于,所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值中的最大值和最小值,所述根据所述应用的当前采样时刻的实际工作负载和所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前工作负载模式发生模式转换具体包括:确定当前采样时刻的实际工作负载大于所述最大值,或者小于所述最小值;或
所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值的平均值以及对应的阈值,所述根据所述应用的当前采样时刻的实际工作负载和所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前工作负载模式发生模式转换具体包括:计算所述当前采样时刻的实际工作负载与所述平均值的差值的绝对值,确定所述绝对值超出所述阈值;其中,所述对应的阈值为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的各采样时刻的工作负载取值与所述平均值的最大差值。
7.如权利要求1-6任一所述的方法,其特征在于,所述获取最近的m次实际的模式转换数据具体包括
根据所述应用的当前采样时刻的实际工作负载与所述模式概述中所有的工作负载模式对应的工作负载取值范围,确定所述应用的当前实际工作负载落入某个模式对应的工作负载取值范围内,获取该确定的模式的模式ID作为所述最近的一次实际的模式转换后的模式ID;以及获取所述最近的一次实际的模式转换发生的时刻和上次实际的模式转换发生的时刻的时间差作为所述最近的一次实际的模式转换前的模式的持续时间;
从实际的模式转换的历史数据中获取除所述最近的一次实际的模式转换数据之外的m-1次实际的模式转换数据。
8.如权利要求3-7所述的方法,其特征在于,所述根据预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间具体包括:
根据所述应用的工作负载的模式概述,获取所述预测得到的下次模式转换后的模式ID对应的代表性工作负载和最近的一次实际模式转换后的模式ID对应的代表性工作负载;
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载大于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载;确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上下次模式转换前的模式的持续时间预测值再减去增加资源所需的时间;或
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载小于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载,确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上下次模式转换前的模式的持续时间。
9.如权利要求3-8所述的方法,其特征在于,所述根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源具体包括:
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载超过所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定超过的工作负载所需的资源量,向第一资源池请求增加所述超过的工作负载所需的资源量;或
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载少于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定所述少于的工作负载所需的资源量;向所述第一资源池清求减少所述少于的工作负载所需的资源量;
其中,所述第一资源池包含处于停止状态的服务器/虚拟机,用于根据所述资源量进行资源调整。
10.如权利要求3-9所述的方法,其特征在于,所述根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源具体还包括:
确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID预测值对应的代表性工作负载,以及确定所述当前采样时刻晚于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载所需的资源量;或
确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID预测值对应的代表性工作负载,以及确定所述当前采样时刻早于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于所述当前采样时刻之前所述应用的实际的工作负载模式的模式ID对应的代表性工作负载的工作负载所需的资源量;其中,所述第二资源池包含处于准备就绪状态的服务器或虚拟机。
11.一种云计算环境中调整应用所需资源的装置,其特征在于,包括:
第一获取模块,用于获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式标识ID对应的工作负载取值范围;
第一确定模块,用于根据所述第一获取模块获取的当前采样时刻的实际工作负载和当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;
第二获取模块,用于获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数;
预测模块,用于根据所述第二获取模块获取的最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID;
第二确定模块,用于根据所述预测模块预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间;
调整模块,用于当到达所述下次资源调整的时间时,根据所述预测模块预测得到的下次模式转换后的模式ID,调整应用所需的资源。
12.如权利要求11所述的调整应用所需资源的装置,其特征在于,所述装置还包括:识别模块,用于根据所述应用的实际的工作负载的历史数据识别应用的工作负载模式,为每一个识别出的工作负载模式分配一个模式ID,并确定每一个识别出的工作负载模式的模式ID对应的描述信息;其中,所述模式ID对应的描述信息包含该模式ID对应的代表性工作负载和该模式ID对应的工作负载取值范围。
13.如权利要求12所述的调整应用所需资源的装置,其特征在于,所述装置还包括:记录模块,用于记录所述应用的工作负载的模式概述和实际的模式转换的历史数据;其中,所述工作负载的模式概述包含所述每一个识别出的工作负载模式的模式ID和所述每一个识别出的工作负载模式的模式ID对应的描述信息。
14.如权利要求12或13所述的调整应用所需资源的装置,其特征在于,所述识别模块,具体用于获取所述应用的工作负载的历史数据;将所述应用的实际的工作负载的历史数据分为K个聚类;给所述K个聚类中的每个聚类分配一个标识作为模式ID,所述K个聚类与应用的K个工作负载模式一一对应;确定所述应用的每一个工作负载模式的工作负载取值范围;根据允许的服务等级协议SLA违反率为每个所述模式ID对应的工作负载模式确定代表性工作负载。
15.如权利要求14所述的调整应用所需资源的装置,其特征在于,所述识别模块,还用于根据资源增加所需要的时间对所述K个工作负载模式进行合并处理。
16.如权利要求11-15任一所述的调整应用所需资源的装置,其特征在于,所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值中的最大值和最小值,所述第一确定模块,具体用于确定当前采样时刻的实际工作负载大于所述最大值,或者小于所述最小值;或
所述工作负载取值范围为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的所有采样时刻的工作负载取值的平均值以及对应的阈值,所述第一确定模块,具体用于计算所述当前采样时刻的实际工作负载与所述平均值的差值的绝对值,确定所述绝对值超出所述阈值;其中,所述对应的阈值为所述当前采样时刻之前所述应用实际的工作负载模式的模式ID对应的各采样时刻的工作负载取值与所述平均值的最大差值。
17.如权利要求11-16任一所述的调整应用所需资源的装置,其特征在于,所述第二获取模块,具体用于根据应用的当前采样时刻的实际工作负载与所述模式概述中所有的工作负载模式对应的工作负载取值范围,确定所述应用的当前实际工作负载落入某个模式对应的工作负载取值范围内,获取该确定的模式的模式ID作为所述最近的一次实际的模式转换后的模式ID;以及获取所述最近的一次实际的模式转换发生的时刻和上次实际的模式转换发生的时刻的时间差作为所述最近的一次实际的模式转换前的模式的持续时间;从实际的模式转换的历史数据中获取除所述最近的一次实际的模式转换数据之外的m-1次实际的模式转换数据。
18.如权利要求13-17任一所述的调整应用所需资源的装置,其特征在于,所述第二确定模块,具体用于根据所述应用的工作负载的模式概述,获取所述预测得到的下次模式转换后的模式ID对应的代表性工作负载和最近的一次实际模式转换后的模式ID对应的代表性工作负载;
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载大于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载;确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间再减去增加资源所需的时间;或
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载小于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载,确定下次资源调整的时间为最近的一次实际模式转换发生的时刻加上所述预测得到的下次模式转换前的模式的持续时间。
19.如权利要求13-18所述的调整应用所需资源的装置,其特征在于,所述调整模块,具体用于确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载超过所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定超过的工作负载所需的资源量,向第一资源池请求增加所述超过的工作负载所需的资源量;或
确定所述预测得到的下次模式转换后的模式ID对应的代表性工作负载少于所述最近的一次实际模式转换后的模式ID对应的代表性工作负载的工作负载;确定所述少于的工作负载所需的资源量;向所述第一资源池清求减少所述少于的工作负载所需的资源量;
其中,所述第一资源池包含处于停止状态的服务器/虚拟机,用于根据所述资源量进行资源调整。
20.如权利要求13-19所述的调整应用所需资源的装置,其特征在于,所述调整模块,具体还用于确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻晚于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载所需的资源量;或
确定所述当前采样时刻的实际工作负载大于最近的一次实际模式转换后资源预测得到的模式ID对应的代表性工作负载,以及确定所述当前采样时刻早于已确定的最近的一次实际模式转换后资源预测得到的资源调整的时间,请求第二资源池为应用分配大于所述当前采样时刻之前所述应用的实际的工作负载模式的模式ID对应的代表性工作负载的工作负载所需的资源量;其中,所述第二资源池包含处于准备就绪状态的服务器或虚拟机。
21.一种云计算环境中调整应用所需资源的设备,其特征在于,包括:处理器、存储器以及总线,所述处理器和所述存储器通过所述总线进行通信;其中,所述存储器中存有计算机可读程序;所述处理器通过运行所述存储器中的程序,以用于获取应用的当前采样时刻的实际工作负载以及当前采样时刻之前的实际工作负载模式的模式标识ID对应的工作负载取值范围;根据所述当前采样时刻的实际工作负载和所述当前采样时刻之前的实际的工作负载模式的模式ID对应的工作负载取值范围,确定所述应用的当前采样时刻的实际工作负载模式发生模式转换;获取最近的m次实际的模式转换数据;每一次实际的模式转换数据包含所述实际的模式转换后的模式ID和所述实际的模式转换前的模式的持续时间,其中m为正整数;根据获取的最近的m次实际的模式转换数据以及应用的工作负载的模式预测模型,进行资源预测得到下次模式转换前的模式的持续时间和下次模式转换后的模式ID;根据预测得到的下次模式转换前的模式的持续时间、预测得到的下次模式转换后的模式ID以及最近的一次实际模式转换后的模式ID,确定下次资源调整的时间;当到达所述下次资源调整的时间时,根据所述预测得到的下次模式转换后的模式ID,调整应用所需的资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410471475.9A CN105491079B (zh) | 2014-09-16 | 2014-09-16 | 云计算环境中调整应用所需资源的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410471475.9A CN105491079B (zh) | 2014-09-16 | 2014-09-16 | 云计算环境中调整应用所需资源的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105491079A true CN105491079A (zh) | 2016-04-13 |
CN105491079B CN105491079B (zh) | 2019-03-01 |
Family
ID=55677791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410471475.9A Active CN105491079B (zh) | 2014-09-16 | 2014-09-16 | 云计算环境中调整应用所需资源的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105491079B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107404523A (zh) * | 2017-07-21 | 2017-11-28 | 中国石油大学(华东) | 云平台自适应资源调度系统和方法 |
CN107748699A (zh) * | 2017-10-27 | 2018-03-02 | 广东欧珀移动通信有限公司 | 资源分配方法及相关产品 |
CN109272047A (zh) * | 2018-09-27 | 2019-01-25 | 山东理工大学 | 一种满足光组播资源预测的隐马尔科夫模型状态构造与参数训练方法 |
CN109992392A (zh) * | 2017-12-29 | 2019-07-09 | 中移(杭州)信息技术有限公司 | 一种资源部署方法、装置及资源服务器 |
CN111866111A (zh) * | 2020-07-13 | 2020-10-30 | 郑州轻工业大学 | 一种感知用户需求增长趋势的边缘部署方法 |
CN118193187A (zh) * | 2023-12-06 | 2024-06-14 | 中国华能集团有限公司北京招标分公司 | 一种密码资源管理调度方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052224A (zh) * | 2007-05-15 | 2007-10-10 | 华为技术有限公司 | 一种确定激活服务质量时机的方法、系统及装置 |
CN102193832A (zh) * | 2010-03-11 | 2011-09-21 | 精英电脑股份有限公司 | 云端计算资源排程方法与应用的系统 |
WO2012019502A1 (zh) * | 2010-08-13 | 2012-02-16 | 索尼公司 | 对终端的副小区的上行链路进行激活和去激活的方法及装置 |
CN102801792A (zh) * | 2012-07-26 | 2012-11-28 | 华南理工大学 | 基于统计预测的云cdn资源自动部署方法 |
US20140016650A1 (en) * | 2011-04-07 | 2014-01-16 | Huawei Technologies Co., Ltd. | Method for dynamically adjusting resource and scheduling device |
CN103577268A (zh) * | 2012-08-07 | 2014-02-12 | 复旦大学 | 基于应用负载的自适应资源供应方法 |
CN103678004A (zh) * | 2013-12-19 | 2014-03-26 | 南京大学 | 一种基于非监督特征学习的主机负载预测方法 |
-
2014
- 2014-09-16 CN CN201410471475.9A patent/CN105491079B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052224A (zh) * | 2007-05-15 | 2007-10-10 | 华为技术有限公司 | 一种确定激活服务质量时机的方法、系统及装置 |
CN102193832A (zh) * | 2010-03-11 | 2011-09-21 | 精英电脑股份有限公司 | 云端计算资源排程方法与应用的系统 |
WO2012019502A1 (zh) * | 2010-08-13 | 2012-02-16 | 索尼公司 | 对终端的副小区的上行链路进行激活和去激活的方法及装置 |
US20140016650A1 (en) * | 2011-04-07 | 2014-01-16 | Huawei Technologies Co., Ltd. | Method for dynamically adjusting resource and scheduling device |
CN102801792A (zh) * | 2012-07-26 | 2012-11-28 | 华南理工大学 | 基于统计预测的云cdn资源自动部署方法 |
CN103577268A (zh) * | 2012-08-07 | 2014-02-12 | 复旦大学 | 基于应用负载的自适应资源供应方法 |
CN103678004A (zh) * | 2013-12-19 | 2014-03-26 | 南京大学 | 一种基于非监督特征学习的主机负载预测方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107404523A (zh) * | 2017-07-21 | 2017-11-28 | 中国石油大学(华东) | 云平台自适应资源调度系统和方法 |
CN107748699A (zh) * | 2017-10-27 | 2018-03-02 | 广东欧珀移动通信有限公司 | 资源分配方法及相关产品 |
CN109992392A (zh) * | 2017-12-29 | 2019-07-09 | 中移(杭州)信息技术有限公司 | 一种资源部署方法、装置及资源服务器 |
CN109272047A (zh) * | 2018-09-27 | 2019-01-25 | 山东理工大学 | 一种满足光组播资源预测的隐马尔科夫模型状态构造与参数训练方法 |
CN111866111A (zh) * | 2020-07-13 | 2020-10-30 | 郑州轻工业大学 | 一种感知用户需求增长趋势的边缘部署方法 |
CN111866111B (zh) * | 2020-07-13 | 2021-03-30 | 郑州轻工业大学 | 一种感知用户需求增长趋势的边缘部署方法 |
CN118193187A (zh) * | 2023-12-06 | 2024-06-14 | 中国华能集团有限公司北京招标分公司 | 一种密码资源管理调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105491079B (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105491079B (zh) | 云计算环境中调整应用所需资源的方法及装置 | |
CN106528280B (zh) | 一种任务分配方法和系统 | |
US9495215B2 (en) | Optimizing virtual machines placement in cloud computing environments | |
CN106209967B (zh) | 一种视频监控云资源预测方法及系统 | |
CN110474852B (zh) | 一种带宽调度方法及装置 | |
CN109586954B (zh) | 一种网络流量预测方法、装置及电子设备 | |
CN112685153A (zh) | 微服务调度方法、装置以及电子设备 | |
US11620049B2 (en) | Method, electronic device and computer program product for managing storage space | |
CN107608781B (zh) | 一种负载预测方法、装置以及网元 | |
CN114490078A (zh) | 一种微服务的动态缩扩容方法、装置及设备 | |
CN108023834A (zh) | 一种云资源自动分配方法及装置 | |
CN114518945A (zh) | 一种资源调度方法、装置、设备及存储介质 | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
CN110389817B (zh) | 多云系统的调度方法、装置和计算机可读介质 | |
EP3032417A1 (en) | Cloud orchestration and placement using historical data | |
Cai et al. | Less provisioning: A hybrid resource scaling engine for long-running services with tail latency guarantees | |
Chen et al. | Towards resource-efficient cloud systems: Avoiding over-provisioning in demand-prediction based resource provisioning | |
CN116962532A (zh) | 集群任务调度方法、装置、计算机设备及存储介质 | |
US20150120940A1 (en) | Apparatus and method for changing resource using pattern information, and recording medium using the same | |
Shameem et al. | An effective resource management in cloud computing | |
CN108429704B (zh) | 一种节点资源分配方法及装置 | |
JP6916096B2 (ja) | インスタンス利用促進システム | |
WO2022001295A1 (zh) | 云环境管理方法、云环境管理平台及存储介质 | |
CN114546769A (zh) | 一种任务监控方法、装置、电子设备及可读存储介质 | |
CN113850428A (zh) | 作业调度的预测处理方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |