虚拟机资源的动态调配方法、装置及系统与流程

文档序号:11154633阅读:622来源:国知局
虚拟机资源的动态调配方法、装置及系统与制造工艺

本发明涉及虚拟机技术领域,尤其涉及一种虚拟机资源的动态调配方法、装置及系统。



背景技术:

虚拟机服务器运行过程中,承受的业务压力是动态变化的,随着访问量,流量等等因素而改变,对CPU/或内存的需求也随之改变,例如,12306网站,在春运期间,访问量会剧增,而在淡季的话,如果按照这个标准配置服务器,在其他淡季,访问量一般比较小,导致造成巨大的资源浪费。

而且,在预先配置虚拟机资源是,CPU和内存一般是不能随意配置的,如果配置过低,导致资源不足,影响用户使用;如果配置过高,单台服务器主机可以运行的虚拟机台数会降低,导致需要的服务器个数增加,会造成不必要的浪费。

现有的技术一般是在虚拟机启动的时候获取整台服务器的资源使用情况,来配置虚拟机的资源,由于现有的虚拟机业务压力信息是根据服务器中的信息获取的,不够精确,难免造成误判,因此难以在虚拟机的运行过程中对其资源进行合理的动态配置,如果需要对虚拟机的资源进行调整,只能中断虚拟机运行的业务才能进行资源的调整,为用户带来不便。



技术实现要素:

本发明提供一种虚拟机资源的动态调配方法、装置及系统,其主要目的在于解决现有技术中无法在虚拟机运行过程中对其资源进行动态调配的技术问题。

为实现上述目的,本发明提供一种虚拟机资源的动态调配方法,该虚拟机资源的动态调配方法包括:

服务器接收虚拟机发送的资源占用率,所述资源包括CPU资源和/或内存资源,其中,所述虚拟机实时检测CPU运行状态和/或内存运行状态以获取资源占用率,将所述资源占用率发送至所述服务器;

服务器根据接收到的所述资源占用率判断所述虚拟机的资源是否需要调配,并在判定需要调配时,根据所述资源占用率以及所述服务器当前的剩余资源,对所述虚拟机的资源进行调配。

可选地,所述在判定需要调配时,根据所述资源占用率以及所述服务器当前的剩余资源,对所述虚拟机的资源进行调配的步骤包括:

在判定需要增加所述虚拟机的资源时,根据所述资源占用率以及所述服务器当前的剩余资源,确定所述虚拟机的资源增加量,并根据确定的所述资源增加量增加所述虚拟机的资源;

在判定需要减少所述虚拟机的资源时,根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源。

可选地,所述根据接收到的所述资源占用率判断所述虚拟机的资源是否需要调配的步骤包括:

判断所述虚拟机在单位时间内的资源占用率是否大于第一预设占用率,其中,在单位时间内的资源占用率大于第一预设占用率时,判定需要增加所述虚拟机的资源;

判断所述虚拟机在单位时间内的资源占用率是否小于第二预设占用率,所述第二预设占用率小于所述第一预设占用率,其中,在单位时间内的资源占用率小于所诉第二预设占用率时,判定需要减少所述虚拟机的资源。

可选地,所述根据接收到的所述资源占用率判断所述虚拟机的资源是否需要调配的步骤包括:

判断所述虚拟机在预设时长内,资源占用率大于第三预设占用率的时间比例是否大于第一预设比例,其中,在所述时间比例大于所述第一预设比例时,判定需要增加所述虚拟机的资源;

判断所述虚拟机在预设时长内,资源占用率小于第四预设占用率的时间比例是否大于第二预设比例,所述第四资源占用率小于所述第三资源占用率,其中,在所述时间比例大于所述第二预设比例时,判定需要减少所述虚拟机的资源。

可选地,所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源的步骤之前,所述虚拟机资源的动态调配方法还包括步骤:

在判定需要减少所述虚拟机的资源时,判断所述虚拟机当前的资源量是否大于所述虚拟机开启时分配的资源量;

当所述虚拟机当前的资源量大于所述虚拟机开启时分配的资源量,则执行根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源的步骤。

此外,为实现上述目的,本发明还提供一种虚拟机资源的动态调配装置,该虚拟机资源的动态调配装置包括:

所述虚拟机资源的动态调配装置包括:

数据接收模块,用于接收虚拟机发送的资源占用率,所述资源包括CPU资源和/或内存资源,其中,所述虚拟机实时监测CPU运行状态和/或内存运行状态,根据所述CPU运行状态和/或内存运行状态获取资源占用率并发送至所述动态调配装置;

资源判断模块,用于根据接收到的所述资源占用率判断所述虚拟机的资源是否需要调配;

动态调配模块,用于在判定需要调配时,根据所述资源占用率以及所述服务器当前的剩余资源,对所述虚拟机的资源进行调配。

可选地,所述动态调配模块包括:

资源增加单元,用于在判定需要增加所述虚拟机的资源时,根据所述资源占用率以及所述服务器当前的剩余资源,确定所述虚拟机的资源增加量,并根据确定的所述资源增加量增加所述虚拟机的资源;

资源减少单元,用于在判定需要减少所述虚拟机的资源时,根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源。

可选地,所述资源判断模块包括:

第一判断单元,用于判断所述虚拟机在单位时间内的资源占用率是否大于第一预设占用率,其中,在单位时间内的资源占用率大于第一预设占用率时,判定需要增加所述虚拟机的资源;

第二判断单元,用于判断所述虚拟机在单位时间内的资源占用率是否小于第二预设占用率,所述第二预设占用率小于所述第一预设占用率,其中,在单位时间内的资源占用率小于所诉第二预设占用率时,判定需要减少所述虚拟机的资源。

可选地,所述资源判断模块包括:

第三判断单元,用于判断所述虚拟机在预设时长内,资源占用率大于第三预设占用率的时间比例是否大于第一预设比例,其中,在所述时间比例大于所述第一预设比例时,判定需要增加所述虚拟机的资源;

第四判断单元,用于判断所述虚拟机在预设时长内,资源占用率小于第四预设占用率的时间比例是否大于第二预设比例,所述第四资源占用率小于所述第三资源占用率,其中,在所述时间比例大于所述第二预设比例时,判定需要减少所述虚拟机的资源。

此外,为实现上述目的,本发明还提供一种虚拟机资源的动态调配系统,该虚拟机资源的动态调配系统包括上述虚拟机资源的动态调配装置,该系统还包括至少一台所述虚拟机,所述虚拟机包括:

状态监测模块,用于实时监测CPU运行状态和/或内存运行状态,根据所述CPU运行状态和/或内存运行状态获取资源占用率;

数据发送模块,用于将所述资源占用率发送至所述动态调配装置。

本发明提出的虚拟机资源的动态调配方法、装置及系统,虚拟机实时监测CPU运行状态和/或内存运行状态,并根据CPU运行状态和/或内存运行状态获取该虚拟机的资源占用率,资源占用率包括CPU占用率和/或内存占用率,将这些数据发送至服务器,服务器根据接收到的资源占用率判断该虚拟机的资源(CPU资源和/或内存资源)是否需要调配,并且在判定需要调配时,根据资源占用率以及服务器当前的剩余资源对虚拟机的资源进行调配,以根据该虚拟机的CPU运行状态和/或内存运行状态为其分配合理的CPU资源和/或内存资源,而且本发明中,由虚拟机根据运行状态信息来精确的获取资源占用率,提高对于虚拟机压力判断的准确性,而且可以无需中断虚拟机的运行,根据精确的资源占用率对虚拟机的资源进行动态的调配,解决了现有技术中无法在虚拟机运行过程中对其资源进行动态调配的技术问题。

附图说明

图1为本发明虚拟机资源的动态调配方法第一实施例的流程图;

图2为本发明虚拟机资源的动态调配装置第一实施例的功能模块示意图;

图3为本发明虚拟机资源的动态调配系统中虚拟机的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种虚拟机资源的动态调配方法。参照图1所示,为本发明虚拟机资源的动态调配方法第一实施例的流程图。

在本实施例中,该虚拟机资源的动态调配方法包括:

步骤S10,服务器接收虚拟机发送的资源占用率,所述资源包括CPU资源和/或内存资源,其中,所述虚拟机实时检测CPU运行状态和/或内存运行状态以获取资源占用率,将所述资源占用率发送至所述服务器;

需要说明的是,本发明实施例中,一台服务器上可以运行多台虚拟机,服务器将硬件资源合理的配置给多台虚拟机,在虚拟机开启时,服务器会根据当前的剩余资源为该虚拟机分配合适的资源。但是由于虚拟机在运行的过程中,随着承受的业务量的变化,需要的资源配置也会随之发生变化,故,对于每一台虚拟机来说,在运行过程中,实时监控自身的CPU运行状态和/或内存运行状态,并获取到资源的占用率。

此外,本实施例提出的方法可以只对虚拟机的内存资源进行动态调配,也可以只对虚拟机的CPU资源进行调配,或者,可以对虚拟机的内存资源和CPU资源都进行调配,用户可以根据需要设置调配的对象。当调配的对象为内存资源时,所述资源为内存资源,所述资源占用率为内存占用率;当调配的对象为CPU资源时,所述资源为CPU资源,所述资源占用率为CPU占用率;当调配的对象为内存资源和CPU资源时,所述资源包括CPU资源和内存资源,所述资源占用率为CPU占用率和内存占用率。以下实施例中以分别根据CPU占用率和内存占用率对CPU资源和内存资源进行调配为例,进行说明。

具体地,在虚拟机内部设置一个一直运行的服务,对虚拟机的运行状态进行实时监测,并且该服务每间隔一段时间,例如1秒钟,获取一次该虚拟机的CPU占用率和内存占用率,例如,可以资源占用率可以报表数据的形式、命名为Guest_DataReport发送至服务器,该报表数据中可以包括以百分比形式表示的资源占用率的具体数据、该虚拟机当前的总资源量以及对应的时间信息,该虚拟机当前的总资源量包括CPU核数以及内存大小。虚拟机与服务器之间的通信通过虚拟串口实现,本实施例中采用通过标准虚拟化技术Virtio接口实现的虚拟机串口,该虚拟串口比普通串口延迟低、宽带高,能够满足数据传输的需要。在虚拟机和服务器中分别设置一个代理:Guest_proxy和Host_proxy,虚拟机上的Guest_proxy将Guest_DataReport数据用标准的json格式封装,发送给服务器代理Host_proxy,在其他实施例中也可以根据用户的设置,使用其他的格式进行封装。服务器在接收到上述资源占用率后,将其存储在数据库,以供后续服务器后续使用。

步骤S20,服务器根据接收到的所述资源占用率判断所述虚拟机的资源是否需要调配,并在判定需要调配时,根据所述资源占用率以及所述服务器当前的剩余资源,对所述虚拟机的资源进行调配。

对于服务器来说,可能同时运行有多台虚拟机,服务器可以根据数据库中存储的每一台虚拟机的资源占用率对应的调整该虚拟机的资源配置。首先,服务器定时或者实时地从数据库中获取虚拟机的资源占用率,例如,可以每分钟获取一次,由于虚拟机是每秒钟发送一次,这样服务器就可以获取到虚拟机在一分钟内发送的60次资源占用率数据,根据获取到的这些数据判断对应的虚拟机的资源是否需要调配,调配包括增加虚拟机的资源或者减少虚拟机的资源。具体地,在判定需要增加所述虚拟机的资源时,根据所述资源占用率以及所述服务器当前的剩余资源,确定所述虚拟机的资源增加量,并根据确定的所述资源增加量增加所述虚拟机的资源;在判定需要减少所述虚拟机的资源时,根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源。在增加虚拟机的资源时,需要考虑服务器当前的剩余资源是否充足,当剩余资源充足时,可以根据虚拟机的资源占用率的大小确定要分配给该虚拟机的资源量,例如,增加的CPU核数以及增加的内存大小。当服务器剩余资源不充足时,则不对其资源进行调整。

可选地,作为一种实施方式,步骤S20可以包括以下细化步骤:

判断所述虚拟机在单位时间内的资源占用率是否大于第一预设占用率,其中,在单位时间内的资源占用率大于第一预设占用率时,判定需要增加所述虚拟机的资源;

判断所述虚拟机在单位时间内的资源占用率是否小于第二预设占用率,所述第二预设占用率小于所述第一预设占用率,其中,在单位时间内的资源占用率小于所诉第二预设占用率时,判定需要减少所述虚拟机的资源。

该实施方式中,预先设置第一预设占用率和第二预设占用率,例如,可以分别设置CPU和内存的第一预设占用率和第二预设占用率,服务器根据数据库中存储的Guest_DataReport,计算出虚拟机在单位时间内的资源占用率并判断是否大于第一预设占用率,若大于,则判定该虚拟机需要增加资源,以内存占用率为例,假如虚拟机每5秒钟发送一次内存占用率,服务器每30秒获取一次存储的内存占用率,那么可以获取到6个虚拟机发送的内存占用率,分别为50%、60%、60%、70%、50%、70%,那么根据这些数据可以计算出单位时间内的资源占用率为60%,假设内存的第一预设占用率为58%,那么就可以判定该虚拟机内存不足,需要增加内存资源。

利用同样的方式可以判断虚拟机在单位时间内的资源占用率是否小于第二预设占用率,若是,则说明该虚拟机的资源超出其需求,需要减少资源。

可选地,作为另一种实施方式,步骤S20可以包括以下细化步骤:

判断所述虚拟机在预设时长内,资源占用率大于第三预设占用率的时间比例是否大于第一预设比例,其中,在所述时间比例大于所述第一预设比例时,判定需要增加所述虚拟机的资源;

判断所述虚拟机在预设时长内,资源占用率小于第四预设占用率的时间比例是否大于第二预设比例,所述第四资源占用率小于所述第三资源占用率,其中,在所述时间比例大于所述第二预设比例时,判定需要减少所述虚拟机的资源。

该实施方式中,预先设置第三预设占用率和第四预设占用率,例如,可以分别设置CPU和内存的第三预设占用率和第四预设占用率,服务器根据数据库中存储的Guest_DataReport,计算出在预设时长内,资源占用率大于第三预设占用率的时间占该预设时长总时间的时间比例,由于Guest_DataReport中包含有时间信息,或者服务器可以记录接收到Guest_DataReport的时间,以内存占用率为例,假如虚拟机每5秒钟发送一次内存占用率,服务器每30秒获取一次存储的内存占用率,那么可以获取到6个虚拟机发送的内存占用率,分别为70%、70%、60%、70%、60%、70%,假设第三预设占用率为65%,预设时长为30秒,第一预设比例为65%;那么根据这些数据可以看出在30秒内,有20秒的时间中内存占用率是大于65%的,计算出时间比例为67%,那么可以判定该虚拟机内存不足,需要增加内存资源。

利用同样的方式可以判断虚拟机在预设时长内,资源占用率小于第四预设占用率的时间比例是否大于第二预设比例,若是,则说明该虚拟机的资源超出其需求,需要减少资源。

本实施例提出的虚拟机资源的动态调配方法,虚拟机实时监测CPU运行状态和/或内存运行状态,并根据CPU运行状态和/或内存运行状态获取该虚拟机的资源占用率,资源占用率包括CPU占用率和/或内存占用率,将这些数据发送至服务器,服务器根据接收到的资源占用率判断该虚拟机的资源(CPU资源和/或内存资源)是否需要调配,并且在判定需要调配时,根据资源占用率以及服务器当前的剩余资源对虚拟机的资源进行调配,以根据该虚拟机的CPU运行状态和/或内存运行状态为其分配合理的CPU资源和/或内存资源,而且本实施例中,由虚拟机根据运行状态信息来精确的获取资源占用率,提高对于虚拟机压力判断的准确性,而且可以无需中断虚拟机的运行,根据精确的资源占用率对虚拟机的资源进行动态的调配,解决了现有技术中无法在虚拟机运行过程中对其资源进行动态调配的技术问题。

基于第一实施例提出本发明虚拟机资源的动态调配方法的第二实施例。在本实施例中,根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源的步骤之前,虚拟机资源的动态调配方法还包括:

在判定需要减少所述虚拟机的资源时,判断所述虚拟机当前的资源量是否大于所述虚拟机开启时分配的资源量;

当所述虚拟机当前的资源量大于所述虚拟机开启时分配的资源量,则执行根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源的步骤。

在本实施例中,只对已经做过动态增加的虚拟机的资源进行减少处理,也就是说,在判定需要减少某一虚拟机的资源时,先判断该虚拟机当前配置的资源量是否大于该虚拟机开启时服务器为其分配的资源量,若大于,则说明,该虚拟机之前经历过资源的增加,此时可以减少其资源,若等于,则不对其资源进行调整。其中,虚拟机开启时,服务器会为其分配预设核数的CPU以及预设数量的内存,上述预设核数以及预设数量由用户根据需要预先配置。

本发明还提出一种虚拟机资源的动态调配装置。

参照图2所示,为本发明虚拟机资源的动态调配装置第一实施例的功能模块示意图。

在该实施例中,该虚拟机资源的动态调配装置包括:

数据接收模块10,用于接收虚拟机发送的资源占用率,所述资源包括CPU资源和/或内存资源,其中,所述虚拟机实时检测CPU运行状态和/或内存运行状态以获取资源占用率,将所述资源占用率发送至所述动态调配装置;

需要说明的是,本发明实施例中,一台服务器上可以运行多台虚拟机,服务器将硬件资源合理的配置给多台虚拟机,在虚拟机开启时,服务器会根据当前的剩余资源为该虚拟机分配合适的资源,该服务器即为所述虚拟机资源的动态调配装置。但是由于虚拟机在运行的过程中,随着承受的业务量的变化,需要的资源配置也会随之发生变化,故,对于每一台虚拟机来说,在运行过程中,实时监控自身的CPU运行状态和/或内存运行状态,并获取到资源的占用率。

此外,本实施例提出的装置可以只对虚拟机的内存资源进行动态调配,也可以只对虚拟机的CPU资源进行调配,或者,可以对虚拟机的内存资源和CPU资源都进行调配,用户可以根据需要设置调配的对象。当调配的对象为内存资源时,所述资源为内存资源,所述资源占用率为内存占用率;当调配的对象为CPU资源时,所述资源为CPU资源,所述资源占用率为CPU占用率;当调配的对象为内存资源和CPU资源时,所述资源包括CPU资源和内存资源,所述资源占用率为CPU占用率和内存占用率。以下实施例中以分别根据CPU占用率和内存占用率对CPU资源和内存资源进行调配为例,进行说明。

具体地,在虚拟机内部设置一个一直运行的服务,对虚拟机的运行状态进行实时监测,并且该服务每间隔一段时间,例如1秒钟,获取一次该虚拟机的CPU占用率和内存占用率,例如,可以资源占用率可以报表数据的形式、命名为Guest_DataReport发送至服务器,该报表数据中可以包括以百分比形式表示的资源占用率的具体数据、该虚拟机当前的总资源量以及对应的时间信息,该虚拟机当前的总资源量包括CPU核数以及内存大小。虚拟机与服务器之间的通信通过虚拟串口实现,本实施例中采用通过标准虚拟化技术Virtio接口实现的虚拟机串口,该虚拟串口比普通串口延迟低、宽带高,能够满足数据传输的需要。在虚拟机和服务器中分别设置一个代理:Guest_proxy和Host_proxy,虚拟机上的Guest_proxy将Guest_DataReport数据用标准的json格式封装,发送给服务器代理Host_proxy,在其他实施例中也可以根据用户的设置,使用其他的格式进行封装。服务器在接收到上述资源占用率后,数据接收模块10将其存储在数据库,以供后续服务器后续使用。

资源判断模块20,用于根据接收到的所述资源占用率判断所述虚拟机的资源是否需要调配;

动态调配模块30,用于在判定需要调配时,根据所述资源占用率以及所述服务器当前的剩余资源,对所述虚拟机的资源进行调配。

对于服务器来说,可能同时运行有多台虚拟机,服务器可以根据数据库中存储的每一台虚拟机的资源占用率对应的调整该虚拟机的资源配置。首先,服务器定时或者实时地从数据库中获取虚拟机的资源占用率,例如,可以每分钟获取一次,由于虚拟机是每秒钟发送一次,这样服务器就可以获取到虚拟机在一分钟内发送的60次资源占用率数据,资源判断模块20根据获取到的这些数据判断对应的虚拟机的资源是否需要调配,调配包括增加虚拟机的资源或者减少虚拟机的资源。具体地,动态调配模块20包括:

资源增加单元,用于在判定需要增加所述虚拟机的资源时,根据所述资源占用率以及所述服务器当前的剩余资源,确定所述虚拟机的资源增加量,并根据确定的所述资源增加量增加所述虚拟机的资源;

资源减少单元,用于在判定需要减少所述虚拟机的资源时,根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源。

在资源增加单元增加虚拟机的资源时,需要考虑服务器当前的剩余资源是否充足,当剩余资源充足时,资源增加单元可以根据虚拟机的资源占用率的大小确定要分配给该虚拟机的资源量,例如,增加的CPU核数以及增加的内存大小。当服务器剩余资源不充足时,则不对其资源进行调整。

可选地,作为一种实施方式,资源判断模块20包括:

第一判断单元,用于判断所述虚拟机在单位时间内的资源占用率是否大于第一预设占用率,其中,在单位时间内的资源占用率大于第一预设占用率时,判定需要增加所述虚拟机的资源;

第二判断单元,用于判断所述虚拟机在单位时间内的资源占用率是否小于第二预设占用率,所述第二预设占用率小于所述第一预设占用率,其中,在单位时间内的资源占用率小于所诉第二预设占用率时,判定需要减少所述虚拟机的资源。

该实施方式中,预先设置第一预设占用率和第二预设占用率,例如,可以分别设置CPU和内存的第一预设占用率和第二预设占用率,资源判断模块20根据数据库中存储的Guest_DataReport,计算出虚拟机在单位时间内的资源占用率并判断是否大于第一预设占用率,若大于,则第一判断单元判定该虚拟机需要增加资源,以内存占用率为例,假如虚拟机每5秒钟发送一次内存占用率,服务器每30秒获取一次存储的内存占用率,那么可以获取到6个虚拟机发送的内存占用率,分别为50%、60%、60%、70%、50%、70%,那么根据这些数据可以计算出单位时间内的资源占用率为60%,假设内存的第一预设占用率为58%,那么第一判断单元就可以判定该虚拟机内存不足,需要增加内存资源。

利用同样的方式,第二判断单元可以判断虚拟机在单位时间内的资源占用率是否小于第二预设占用率,若是,则说明该虚拟机的资源超出其需求,需要减少资源。

可选地,作为另一种实施方式,资源判断模块20包括:

第三判断单元,用于判断所述虚拟机在预设时长内,资源占用率大于第三预设占用率的时间比例是否大于第一预设比例,其中,在所述时间比例大于所述第一预设比例时,判定需要增加所述虚拟机的资源;

第四判断单元,用于判断所述虚拟机在预设时长内,资源占用率小于第四预设占用率的时间比例是否大于第二预设比例,所述第四资源占用率小于所述第三资源占用率,其中,在所述时间比例大于所述第二预设比例时,判定需要减少所述虚拟机的资源。

该实施方式中,预先设置第三预设占用率和第四预设占用率,例如,可以分别设置CPU和内存的第三预设占用率和第四预设占用率,服务器根据数据库中存储的Guest_DataReport,资源判断模块20计算出在预设时长内,资源占用率大于第三预设占用率的时间占该预设时长总时间的时间比例,由于Guest_DataReport中包含有时间信息,或者服务器可以记录接收到Guest_DataReport的时间,以内存占用率为例,假如虚拟机每5秒钟发送一次内存占用率,服务器每30秒获取一次存储的内存占用率,那么可以获取到6个虚拟机发送的内存占用率,分别为70%、70%、60%、70%、60%、70%,假设第三预设占用率为65%,预设时长为30秒,第一预设比例为65%;那么根据这些数据可以看出在30秒内,有20秒的时间中内存占用率是大于65%的,计算出时间比例为67%,那么可以判定该虚拟机内存不足,需要增加内存资源。

利用同样的方式可以判断虚拟机在预设时长内,资源占用率小于第四预设占用率的时间比例是否大于第二预设比例,若是,则说明该虚拟机的资源超出其需求,需要减少资源。

本实施例提出的虚拟机资源的动态调配装置,虚拟机实时监测CPU运行状态和/或内存运行状态,并根据CPU运行状态和/或内存运行状态获取该虚拟机的资源占用率,资源占用率包括CPU占用率和/或内存占用率,将这些数据发送至服务器,服务器根据接收到的资源占用率判断该虚拟机的资源(CPU资源和/或内存资源)是否需要调配,并且在判定需要调配时,根据资源占用率以及服务器当前的剩余资源对虚拟机的资源进行调配,以根据该虚拟机的CPU运行状态和/或内存运行状态为其分配合理的CPU资源和/或内存资源,而且本实施例中,由虚拟机根据运行状态信息来精确的获取资源占用率,提高对于虚拟机压力判断的准确性,而且可以无需中断虚拟机的运行,根据精确的资源占用率对虚拟机的资源进行动态的调配,解决了现有技术中无法在虚拟机运行过程中对其资源进行动态调配的技术问题。

基于第一实施例提出本发明虚拟机资源的动态调配装置的第二实施例。在本实施例中,资源判断模块20还用于:在判定需要减少所述虚拟机的资源时,判断所述虚拟机当前的资源量是否大于所述虚拟机开启时分配的资源量;

资源减少单元还用于:当所述虚拟机当前的资源量大于所述虚拟机开启时分配的资源量,则根据所述资源占用率确定所述虚拟机的资源减少量,并根据确定的所述资源减少量减少所述虚拟机的资源。

在本实施例中,资源减少单元只对已经做过动态增加的虚拟机的资源进行减少处理,也就是说,在判定需要减少某一虚拟机的资源时,资源判断模块20先判断该虚拟机当前配置的资源量是否大于该虚拟机开启时服务器为其分配的资源量,若大于,则说明,该虚拟机之前经历过资源的增加,资源减少单元此时可以减少其资源,若等于,则不对其资源进行调整。其中,虚拟机开启时,服务器会为其分配预设核数的CPU以及预设数量的内存,上述预设核数以及预设数量由用户根据需要预先配置。

本发明还提出一种虚拟机资源的动态调配装置。该系统包括上述各个实施例中所述的虚拟机资源的动态调配装置以及至少一个虚拟机,参照图3所示,该虚拟机包括以下模块:

状态监测模块40,用于实时监测CPU运行状态和/或内存运行状态,根据所述CPU运行状态和/或内存运行状态获取资源占用率;

数据发送模块50,用于将所述资源占用率发送至所述动态调配装置。

关于服务器动态调整虚拟机的资源的方法,参照上述各个实施例,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

另外,在发明中涉及“第一”、“第二”等等的描述仅描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当人认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1