虚拟机的处理方法、装置及存储介质与流程

文档序号:32400980发布日期:2022-12-02 19:00阅读:172来源:国知局
虚拟机的处理方法、装置及存储介质与流程

1.本技术涉及云计算领域,尤其涉及一种虚拟机的处理方法、装置及存储介质。


背景技术:

2.数据中心可以利用虚拟化技术以虚拟机的形式按需提供计算资源。随着云计算技术的迅速发展,数据中心的规模和数量持续扩张,而数据中心的运行需要消耗大量的电能,这样不仅会导致企业的运营成本增加,还会对环境造成负面影响。
3.目前,为了降低能耗,相关技术通常是通过减少数据中心中的虚拟机的数量来实现,但是片面的强调节能,会导致虚拟机的资源预留紧张,使得用户的资源需求得不到满足,从而导致数据中心的性能下降和服务等级协议(service level agreement,简称sla)违背,因此,无法保证数据中心的服务质量。


技术实现要素:

4.本技术实施例提供一种虚拟机的处理方法、装置及存储介质,用于解决相关技术中存在的数据中心性能下降和sla违背,造成无法保证数据中心的服务质量的问题。
5.第一方面,本技术实施例提供一种虚拟机的处理方法,包括:获取虚拟机集群中每个虚拟机的中央处理器cpu利用率和服务级别协议sla违背率;将虚拟机集群中cpu利用率小于或等于第一阈值的虚拟机确定为低载虚拟机;将虚拟机集群中cpu利用率大于第二阈值,且sla违背率大于第三阈值的虚拟机确定为过载虚拟机;在低载虚拟机中确定目标虚拟机;将过载虚拟机中的目标负载迁移至目标虚拟机中运行。
6.在一种可能的实施方式中,还包括:采用q-learning算法对低载虚拟机进行分类处理,得到轻微低载虚拟机和极度低载虚拟机;将极度低载虚拟机中的所有负载迁移至轻微低载虚拟机中运行;关闭极度低载虚拟机。
7.在一种可能的实施方式中,在低载虚拟机中确定目标虚拟机,包括:将轻微低载虚拟机确定为目标虚拟机。
8.在一种可能的实施方式中,第二阈值是通过以下方式确定的:获取虚拟机集群中每个虚拟机的负载波动因子;根据负载波动因子,将预先确定的基础阈值调整为第二阈值。
9.在一种可能的实施方式中,获取虚拟机集群中每个虚拟机的cpu利用率,包括:针对虚拟机集群中每个虚拟机,确定虚拟机上运行的所有负载对应的cpu分配容量;确定虚拟机的cpu总容量;确定cpu分配容量与cpu总容量的第一比值;将第一比值确定为cpu利用率。
10.在一种可能的实施方式中,获取虚拟机集群中每个虚拟机的sla违背率,包括:针对虚拟机集群中每个虚拟机,确定虚拟机上运行的所有负载对应的cpu需求容量和cpu分配容量;确定cpu需求容量和cpu分配容量的差值;确定差值和cpu分配容量的第二比值;将第二比值确定为sla违背率。
11.第二方面,本技术实施例提供一种虚拟机的处理装置,包括:获取模块,用于获取虚拟机集群中每个虚拟机的中央处理器cpu利用率和服务级别协议sla违背率;第一确定模
块,用于将虚拟机集群中cpu利用率小于或等于第一阈值的虚拟机确定为低载虚拟机;第二确定模块,用于将虚拟机集群中cpu利用率大于第二阈值,且sla违背率大于第三阈值的虚拟机确定为过载虚拟机;第三确定模块,用于在低载虚拟机中确定目标虚拟机;迁移模块,用于将过载虚拟机中的目标负载迁移至目标虚拟机中运行。
12.第三方面,本技术实施例提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现第一方面的虚拟机的处理方法。
13.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面的虚拟机的处理方法。
14.第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面的虚拟机的处理方法。
15.本技术实施例提供的虚拟机的处理方法、装置及存储介质,通过综合cpu利用率和sla违背率,将虚拟机分成了低载虚拟机和过载虚拟机,再通过sla违背率和能耗将低载虚拟机细化为轻微低载虚拟机和极度低载虚拟机。针对过载虚拟机,可以迁移一部分负载到轻微低载虚拟机中运行,以避免sla违背的发生;针对极度低载虚拟机,在将所有负载迁移后可以关闭,以降低能耗;针对轻微低载虚拟机,可以接收从极度低载虚拟机和过载虚拟机分配来的负载,以提高cpu资源利用率,减少虚拟机的开关机次数。因此,本技术可以提高cpu资源利用率,提升数据中心的能耗效率,并避免sla违背,进一步保证数据中心的服务质量。
附图说明
16.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
17.图1为本技术实施例提供的虚拟机的处理系统的结构示意图;
18.图2为本技术实施例提供的虚拟机的处理方法的流程图;
19.图3为本技术实施例提供的低载虚拟机分类示意图;
20.图4为本技术实施例提供的虚拟机的处理装置的结构示意图;
21.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
22.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在根据本实施例的启示下做出的所有其他实施例,都属于本技术保护的范围。
23.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在
这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.下面首先对本技术中涉及的名词进行解释。
25.虚拟化技术:虚拟化技术是指把一个物理单元虚拟成多个逻辑单元,供多个应用一起使用。虚拟化技术支持在一台物理服务器上部署多个操作系统,每个操作系统运行在一个单独的虚拟机上。
26.虚拟机弹性伸缩:通过分析虚拟机资源使用的监控记录,对虚拟机一段时间内的资源使用量进行预测,指定资源调配策略,恰当及时地扩展或收缩资源,保障虚拟机以及其中应用的运行稳定以及资源得到高效利用。
27.sla:是云服务提供商与客户之间就服务质量所达成的双方共同认可的协议,表明了云服务提供商所提供的服务等级以及质量。
28.sla违背(sla violation,简称slav):指云服务提供商没有满足与客户签订的服务等级协议时的sla违背率。
29.背景技术中提供的相关技术中,至少存在以下技术问题:
30.随着云计算技术的迅速发展,数据中心的规模和数量不断扩张,由于数据中心需要消耗大量的电能,不仅会导致企业的运营成本增加,还会对环境造成负面影响。数据中心利用虚拟化技术以虚拟机的形式按需提供计算资源,为了降低能耗,相关技术通常是用过减少虚拟机的数量来实现,但如果片面地强调节能,会导致资源预留紧张,用户的资源需求得不到满足,从而导致数据中心的性能下降和sla违背,因此无法保证数据中心的服务质量。
31.此外,另一种相关技术是通过依靠简单的监控工具来判断虚拟机的负载,这导致对虚拟机负载的预测和判断不够准确,且虚拟机的伸缩决策也主要依靠人的经验进行设置,无法实时根据环境中虚拟机负载的变化来智能地调整虚拟机伸缩的决策。从而存在以下问题:一是在现有对虚拟机弹性伸缩机制的研究中,都是使用相同的策略用于触发过载虚机和低载虚机的伸缩,没有考虑到过载虚拟机和低载虚拟机执行伸缩之间的区别,使得弹性伸缩的的触发不够准确,也增加了虚拟机开关机的次数;二是低载虚拟机的收缩是降低能耗的关键,一个好的低载虚拟机收缩触发机制可以降低更多能耗,但在现有的研究中,针对低载虚拟机收缩策略的研究较少,一般只是简单地通过设置阈值,将低于某个阈值的虚拟机去全部关闭进行;三是目前的研究在设置弹性伸缩触发阈值时往往是从系统角度考虑,使用cpu利用率作为阈值,而忽略了用户的需求比如sla,使得slav增加,数据中心的服务质量下降。
32.针对上述的问题,发明人构思如下:由于虚拟机上运行的负载的可变性,当虚拟机中央处理器(central processing unit,简称cpu)性能的总体需求超过可用cpu时,根据负载均衡思想,进行虚拟机扩容,如果虚拟机资源未被充分利用,则减少活跃虚拟机的数量,以提升资源的利用率,节约能耗。因此,本技术提出一种虚拟机的处理方法,在考虑cpu利用率和sla违背率的基础上,为不同类型的虚拟机设计了不同的弹性伸缩策略。首先,为过载虚拟机设置cpu利用率和sla违背率分别对应的阈值,并对阈值进行动态调整以提高虚拟机
弹性伸缩触发的准确性,从而减少sla违背;其次,提出了一种基于q-learning算法的低载虚拟机伸缩机制,根据q-learning算法将低载虚拟机进一步划分为轻微低载虚拟机和极度低载虚拟机,轻微低载虚拟机将作为目标弹性伸缩组中的虚拟机,以运行从过载虚拟机和极度低载虚拟机中迁移过来的负载,从而提高资源利用率并减少虚拟机开关机次数,极度低载虚机将在迁移全部负载后被关机,以节约能耗。因此,本技术提供的虚拟机的处理方法可以提高cpu资源利用率,从而提升数据中心的性能并避免sla违背,进一步保证数据中心的服务质量。
33.在一种实施例中,可以在一种应用场景中应用该虚拟机的处理方法。图1为本技术实施例提供的虚拟机的处理系统的结构示意图。如图1所示,在该场景中,虚拟机的处理系统包括代理服务器和虚拟机集群,其中,代理服务器包括过载虚拟机弹性伸缩触发模块、低载虚拟机弹性伸缩触发模块和虚拟机监控器。其中,代理服务器具有能耗约束功能和sla违背约束功能。
34.在上述场景中,代理服务器可以通过虚拟机监控器将虚拟机集群中的虚拟机分为过载虚拟机、轻微低载虚拟机和极度低载虚拟机,并将轻微低载虚拟机设置为伸缩组虚拟机。当代理服务器接收到用户的应用程序(application,简称app)请求(在图1中为请求1、请求2,请求3,

)时,代理服务器可以将用户提交的app请求对应的任务分配给虚拟机集群中可用的虚拟机,虚拟机在执行任务后通过代理服务器向用户反馈任务执行结果。
35.具体地,虚拟机在任务执行(也即负载运行)期间,若被过度使用,也即由于虚拟机的负载具有可变性,当虚拟机中的负载在运行时对cpu性能的总体需求超过可用cpu时,根据负载均衡思想,通过过载虚拟机弹性伸缩触发模块,将过载虚拟机中的部分负载迁移到伸缩组虚拟机中开启的部分虚拟机中运行,从而实现cpu资源的扩展,避免sla违背,保证数据中心的服务质量。
36.具体地,虚拟机在负载运行期间,若未被充分利用,则代理服务器可以将虚拟机划分为极度低载虚拟机,同时,通过低载虚拟机弹性伸缩触发模块将极度低载虚拟机中运行的负载迁移到伸缩组虚拟机中开启的部分虚拟机中运行,并关闭极度低载虚拟机,从而实现cpu资源收缩,减少活跃虚拟机的数量,以降低能耗。
37.结合上述场景,下面通过几个具体实施例对本技术提供的虚拟机的处理方法的技术方案进行详细说明。
38.图2为本技术实施例提供的虚拟机的处理方法的流程图,如图2所示,该方法包括以下步骤:
39.s201:获取虚拟机集群中每个虚拟机的中央处理器cpu利用率和服务级别协议sla违背率。
40.在本步骤中,在相关技术中,往往将cpu利用率用作识别过载虚拟机的阈值,然而,根据sla的定义,当虚拟机的cpu资源请求不满足时,就会发生sla违背,因此,如果不考虑用户的需求,仅仅根据cpu利用率来确定过载虚拟机是不全面的。为了提高对过载虚拟机进行识别的准确率,可以将cpu利用率和sla违背率同时作为确定过载虚拟机的指标。
41.s202:将虚拟机集群中cpu利用率小于或等于第一阈值的虚拟机确定为低载虚拟机。
42.在本步骤中,当cpu利用率低时,sla违背不会发生,因此,在确定低载虚拟机时,仅
需通过cpu利用率确定即可,第一阈值可以为低阈值。
43.s203:将虚拟机集群中cpu利用率大于第二阈值,且sla违背率大于第三阈值的虚拟机确定为过载虚拟机。
44.在本步骤中,由于cpu利用率较高时,容易发生sla违背,因此,在确定过载虚拟机时,除了需要考虑cpu利用率之外,还需要考虑sla违背率。
45.具体地,可以设置两个高阈值,也即第二阈值和第三阈值,第二阈值可以表示为highthreshold
util
,第三阈值可以表示为highthreshold
slav
,当cpu利用率大于第三阈值,且sla违背率大于第三阈值时,则确定虚拟机为过载虚拟机,从而可以提高对过载虚拟机确定的准确性。
46.s204:在低载虚拟机中确定目标虚拟机。
47.在该步骤中,由于低载虚拟机的cpu利用率都较低,因此,可以在低载虚拟机中确定出一部分目标虚拟机,以便于可以运行从其他虚拟机中迁移过来的负载。
48.s205:将过载虚拟机中的目标负载迁移至目标虚拟机中运行。
49.在该步骤中,在确定出目标虚拟机之后,由于目标虚拟机中的cpu利用率较低,因此,可以在过载虚拟机中确定一部分负载作为目标负载,并将目标负载迁移至目标虚拟机中运行,这样可以提高资源利用率,也避免了过载虚拟机发生sla违背,因此,可以提高数据中心的服务质量。
50.本实施例提供的虚拟机的处理方法,通过综合cpu利用率和sla违背率,将虚拟机分成了低载虚拟机和过载虚拟机,针对过载虚拟机,可以迁移一部分负载到低载虚拟机中的目标虚拟机中运行,以避免sla违背的发生,从而可以提高cpu资源利用率,以及可以提升数据中心的性能并避免sla违背,进一步保证数据中心的服务质量。
51.在一种实施例中,还包括:采用q-learning算法对低载虚拟机进行分类处理,得到轻微低载虚拟机和极度低载虚拟机;将极度低载虚拟机中的所有负载迁移至轻微低载虚拟机中运行;关闭极度低载虚拟机。
52.在该方案中,在根据cpu利用率确定出低载虚拟机之后,还可以通过q-learning算法进一步将低载虚拟机分为轻微低载虚拟机和极度低载虚拟机。对于极度低载虚拟机,在将所有负载迁移后可以关闭,以节省能耗;对于轻微低载虚拟机,由于其cpu利用率比极度低载虚拟机较高,因此,可以运行从极度低载虚拟机迁移来的负载,避免频繁的打开或关闭虚拟机,从而可以提高资源利用率。
53.在一种实施例中,在低载虚拟机中确定目标虚拟机,包括:将轻微低载虚拟机确定为目标虚拟机。
54.在该方案中,对于轻微低载虚拟机,可以将其添加到伸缩组虚拟机中作为目标虚拟机,以实现运行从极度低载虚拟机和过载虚拟机中迁移来的负载,以提高资源利用率并减少虚拟机的开关机次数。
55.可选地,对低载虚拟机进行分类可以如图3所示,图3为本技术实施例提供的低载虚拟机分类示意图。在图3中,通过q-learning算法将低载虚拟机分为轻微低载虚拟机和极度低载虚拟机的过程可以如下:
56.首先,学习代理可以感知在当前环境中时刻t时的,由所有低载虚拟机的cpu利用率组成的状态集合,t时刻低载虚拟机的状态集合s
t
可以定义为如下公式:
57.s
t
=(util
h1
,util
h2


,util
hn
)
58.其中n可以用于表示虚拟机集群中所有低载虚拟机的数量,util
hn
可以用于表示t时刻虚拟机hn的cpu利用率。
59.t时刻的动作a
t
定义为如下公式:
60.a
t
=(mode
h1
,mode
h2


,mode
hn
)
61.其中mode
hn
可以用于表示时刻t时虚拟机的电源模式(closed,unclosed)。
62.其次,学习代理根据观察到的虚拟机的状态集合执行相应的动作,确定是否关闭虚拟机,并计算该动作的惩罚值作为反馈信号反馈给环境。其中,惩罚值p
t
可以由slav惩罚和能耗惩罚两部分组成,p
t
可以用公式表示如下:
63.p
t
=p
t
(slav)+p
t
(power)
64.其中,p
t
(slav)可以用于表示slav惩罚,p
t
(power)可以用于表示能耗惩罚。
65.slav惩罚p
t
(slav)可以进一步采用以下公式计算得到:
[0066][0067]
其中,slav
t
可以用于表示时刻t时的sla违背率,slav
t-1
可以用于表示时刻t-1时的sla违背率。若当前时刻t的sla违背率小于上一个时隙t-1时的sla违背率,也即slav
t
《slav
t-1
,则表示当前的选择的操作是正确的,可以降低sla违背率。
[0068]
能耗惩罚p
t
(power)可以进一步采用以下公式计算得到:
[0069][0070]
其中,power
t
可以用于表示时刻t时的能耗,power
t-1
可以用于表示时刻t-1时的能耗。若当前时刻t的能耗小于上一个时隙t-1时的能耗(可以用功率表示),也即power
t
《power
t-1
,则表示当前所选的动作是正确的,可以节省能耗。
[0071]
最后,针对每对动作和状态对应的q值,可以通过计算出来的惩罚值对其进行更新,从而实现在低载虚拟机中确定出轻微低载虚拟机和极度低载虚拟机,并将轻微低载虚拟机作为目标虚拟机加入伸缩组虚拟机中,将极度低载虚拟机中的所有负载迁移后进行关闭。q值可以进一步采用以下公式计算得到:
[0072]q′
(s
t
,a
t
)=q(s
t
,a
t
)+α[p
t
+γminq(s

,a

)-q(s
t
,a
t
)]
[0073]
其中,q

(s
t
,a
t
)可以用于表示更新后的q值;q(s
t
,a
t
)可以用于表示更新前的q值;q(s

,a

)可以用于表示虚拟机在q(s
t
,a
t
)对应的状态的下一个状态对应的q值;α可以用于表示学习率,可以对α复制为0.5,表示采用更新后的结果与更新前的结果的比例相同;γ可以用于表示折扣因子,可以对γ复制为0.7,表示更加注重长期回报产生的作用。
[0074]
可选地,q-learning算法的算法流程可以如下:
[0075]
将q(s,a)初始化为0,error初始化为0;
[0076]
从当前环境中感知虚拟机的初始状态s;
[0077]
进入内循环,循环过程为:根据π(e.g.ε-greedy)策略,选择一个动作a(closed,unclosed);执行动作a,使虚拟机到达下一个状态s’,并且计算出此时的惩罚项p
t
;根据π(e.g.ε-greedy)策略,选择下一个动作a’;更新q(s,a);确定error=max{error,|q(s,a)-q
lastepisode
(s,a)|};确定s

s’;内循环终止条件为s为终态,即确定虚拟机在执行动作a之
后,状态为终态则内循环结束;
[0078]
进入外循环,外循环的终止条件为error≤θ。
[0079]
在一种实施例中,获取虚拟机集群中每个虚拟机的cpu利用率,包括:针对虚拟机集群中每个虚拟机,确定虚拟机上运行的所有负载对应的cpu分配容量;确定虚拟机的cpu总容量;确定cpu分配容量与cpu总容量的第一比值;将第一比值确定为cpu利用率。
[0080]
在该方案中,在确定虚拟机的cpu利用率时,可以采用以下公式计算得到:
[0081][0082]
其中,util可以用于表示cpu利用率,m可以用于表示虚拟机上运行的负载总数(或任务总数),可以用于表示实际分配给第j个负载的cpu容量,c
total
可以用于表示虚拟机的cpu总容量。
[0083]
可选地,通过确定cpu利用率,可以对虚拟机集群中的虚拟机进行分类,确定出低载虚拟机,并在确定sla违背率之后,还可以确定出过载虚拟机,从而针对不同的虚拟机确定不同的弹性伸缩策略,进一步可以提高资源利用率,避免发生sla违背,以提高数据中心的服务质量。
[0084]
在一种实施例中,获取虚拟机集群中每个虚拟机的sla违背率,包括:针对虚拟机集群中每个虚拟机,确定虚拟机上运行的所有负载对应的cpu需求容量和cpu分配容量;确定cpu需求容量和cpu分配容量的差值;确定差值和cpu分配容量的第二比值;将第二比值确定为sla违背率。
[0085]
在该方案中,在确定虚拟机的sla违背率时,可以采用以下公式计算得到:
[0086][0087]
其中,slav可以用于表示sla违背率,可以用于表示第j个负载需要的cpu容量。
[0088]
可选地,通过确定cpu利用率,可以对虚拟机集群中的虚拟机进行分类,确定出低载虚拟机,并在确定sla违背率之后,还可以确定出过载虚拟机,从而针对不同的虚拟机确定不同的弹性伸缩策略,进一步可以提高资源利用率,避免发生sla违背,以提高数据中心的服务质量。
[0089]
在一种实施例中,第二阈值是通过以下方式确定的:获取虚拟机集群中每个虚拟机的负载波动因子;根据负载波动因子,将预先确定的基础阈值调整为第二阈值。
[0090]
在该方案中,第二阈值可以用highthreshold
util
表示。在实际的云计算系统中,由于负载的动态性和不可预测性,很难确定highthreshold
util
的最优固定值,因此,可以先选取一个静态阈值tbase
util
作为highthreshold
util
的基础阈值,然后根据虚拟机的负载的波动情况对tbase
util
进行动态调整。
[0091]
可选地,可以通过虚拟机的负载波动因子动态调整tbase
util
。在确定负载波动因子时,可以首先确定虚拟机在某一时间段内的历史负载数据,然后对历史负载数据进行预处理,例如,可以去掉历史负载数据中的最大值和最小值,然后采用预处理后的历史负载数
据确定在这一时间段内的负载波动因子。负载波动因子可以采用以下公式计算得到:
[0092][0093]
其中,w
load
可以用于表示负载波动因子,xi可以用于表示虚拟机在第i个时刻的负载,x
avg
可以拥有表示虚拟机过去n个时刻的平均负载。w
load
值越小,则说明虚拟机的负载波动越小,虚拟机发生sla违背的可能性越小;反之,w
load
值越大,则说明虚拟机的负载波动越大,虚拟机发生sla违背的可能性越大。因此,可以通过w
load
调整tbase
util

[0094]
可选地,通过w
load
调整tbase
util
时,可以先确定一个预设值。
[0095]
若w
load
小于预设值,则可以将tbase
util
适应性的增加一个δs,也即:
[0096]
highthreshold
util
=tbase
util
+δs
[0097]
其中,δs可以用于表示调整值。
[0098]
反之,若w
load
大于或等于预设值,则可以将tbase
util
适应性的减小一个δs,也即:
[0099]
highthreshold
util
=tbase
util-δs
[0100]
可选地,在确定了highthreshold
util
之后,就可以通过highthreshold
util
和highthreshold
slav
判断虚拟机是否过载。并在虚拟机被判定为过载虚拟机时,可以自动扩充伸缩组虚拟机中的虚拟机数量,从而可以提高对过载虚拟机判定的准确性,以有效减少sla违背情况的发生,并提高cpu资源使用率。
[0101]
本技术提供的技术方案,对过载虚拟机和低载虚拟机进行弹性伸缩的目的是不同的,并且过载虚拟机和低载虚拟机弹性伸缩触发后的处理也有所不同。对过载虚拟机进行弹性伸缩,是为了避免sla违背的发生,而对低载虚拟机进行弹性收缩,则是为了提高资源利用率,降低能耗。本技术为过载虚拟机和低载虚拟机设置不同的弹性伸缩策略,可以提高伸缩触发的准确性,避免不恰当的伸缩操作,从而降低虚拟机的开关机次数,减少由于伸缩产生的资源和性能的开销。
[0102]
本技术提供的技术方案,一方面为过载虚拟机设置了复合阈值伸缩触发机制,也即将cpu利用率和sla违背率作为复合阈值,并根据历史负载数据的波动情况,对其进行动态调整,从而更加准确地判断虚拟机是否过载。另一方面,为低载虚拟机设置了基于q-learning算法的伸缩触发机制,首先通过低阈值初步划分出低载虚拟机;然后采用q-learning算法进一步将低载虚拟机分为轻微低载虚拟机和极度低载虚拟机;轻微低载虚拟机将用作目标虚拟机加入伸缩组虚拟机中,运行从过载虚拟机和极度低载虚拟机中分配来的负载,以提高资源利用率并减少虚拟机的开关机次数;而极度低载虚拟机将在负载被迁移走之后被关闭,以减少活跃虚拟机数量从而降低能耗。
[0103]
从总体上来说,本技术提供的技术方案,除了可以提高除了服务质量和资源利用率以外,还从绿色云计算的角度,考虑到了能耗这个指标,在保证服务质量的同时可以节约数据中心的能耗;根据虚拟机负载的变化,以及cpu利用率和sla违背率,将虚拟机集群中的虚拟机划分为过载虚拟机和低载虚拟机,并为过载虚拟机和低载虚拟机分别设置不同的伸缩触发机制,从而提高资源利用率和服务质量,降低能耗;本技术还利用q-learning算法通过学习代理agent不断和环境交互进行在线学习,并利用其获得的知识为给定任务目标寻
找有效的控制策略,在没有任何关于环境的先验知识的情况下设计了一种自优化控制器,识别低载虚拟机,克服了人工设置阈值的局限性,适合于具有未知多变的工作服所在的云计算环境。因此,本技术提供的技术方案是一种既可以提高资源利用率和服务质量,降低能耗,又具有广泛的适用范围的技术实现方法。
[0104]
图4为本技术实施例提供的虚拟机的处理装置的结构示意图,该虚拟机的处理装置400包括:
[0105]
获取模块401,用于获取虚拟机集群中每个虚拟机的中央处理器cpu利用率和服务级别协议sla违背率;
[0106]
第一确定模块402,用于将虚拟机集群中cpu利用率小于或等于第一阈值的虚拟机确定为低载虚拟机;
[0107]
第二确定模块403,用于将虚拟机集群中cpu利用率大于第二阈值,且sla违背率大于第三阈值的虚拟机确定为过载虚拟机;
[0108]
第三确定模块404,用于在低载虚拟机中确定目标虚拟机;
[0109]
迁移模块405,用于将过载虚拟机中的目标负载迁移至目标虚拟机中运行。
[0110]
可选的,虚拟机的处理装置400包括处理模块(未示出),该处理模块具体用于:采用q-learning算法对低载虚拟机进行分类处理,得到轻微低载虚拟机和极度低载虚拟机;将极度低载虚拟机中的所有负载迁移至轻微低载虚拟机中运行;关闭极度低载虚拟机。
[0111]
可选的,第三确定模块404在低载虚拟机中确定目标虚拟机时,具体用于:将轻微低载虚拟机确定为目标虚拟机。
[0112]
可选的,第二确定模块403还通过以下方式确定第二阈值:获取虚拟机集群中每个虚拟机的负载波动因子;根据负载波动因子,将预先确定的基础阈值调整为第二阈值。
[0113]
可选的,获取模块401在获取虚拟机集群中每个虚拟机的cpu利用率时,具体用于:针对虚拟机集群中每个虚拟机,确定虚拟机上运行的所有负载对应的cpu分配容量;确定虚拟机的cpu总容量;确定cpu分配容量与cpu总容量的第一比值;将第一比值确定为cpu利用率。
[0114]
可选的,获取模块401在获取虚拟机集群中每个虚拟机的sla违背率时,具体用于:针对虚拟机集群中每个虚拟机,确定虚拟机上运行的所有负载对应的cpu需求容量和cpu分配容量;确定cpu需求容量和cpu分配容量的差值;确定差值和cpu分配容量的第二比值;将第二比值确定为sla违背率。
[0115]
本实施例提供的虚拟机的处理装置,用于执行前述方法实施例中的虚拟机的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
[0116]
图5为本技术实施例提供的一种电子的结构示意图,示例性地,电子设备可以被提供为一计算机,例如上文的代理服务器。如图5所示,该电子设备500包括处理组件501,其进一步包括一个或多个处理器,以及由存储器502所代表的存储器资源,用于存储可由处理组件501执行的计算机执行指令,例如应用程序。存储器502中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件501被配置为执行指令,以执行上述虚拟机的处理方法的技术方案。
[0117]
电子设备500还可以包括一个电源组件503被配置为执行电子设备500的电源管理,一个有线或无线网络接口504被配置为将电子设备500连接到网络,和一个输入输出接
口505,该输入输出接口505也可以称为i/o接口505。电子设备500可以操作基于存储在存储器502的操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
[0118]
存储器可以是,但不限于,随机存取存储器(random access memory,简称:ram),只读存储器(read only memory,简称:rom),可编程只读存储器(programmable read-only memory,简称:prom),可擦除只读存储器(erasable programmable read-only memory,简称:eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称:eeprom)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。进一步地,上述存储器内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
[0119]
处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称:cpu)、网络处理器(network processor,简称:np)等。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0120]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时用于实现方法实施例中提供的虚拟机的处理方法的技术方案。
[0121]
本技术实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时用于实现方法实施例中提供的虚拟机的处理方法的技术方案。
[0122]
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0123]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1