掌桥专利:专业的专利平台
掌桥专利
首页

资源闲置的确定方法、装置、集群及存储介质

文献发布时间:2024-04-18 19:53:33


资源闲置的确定方法、装置、集群及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种资源闲置的确定方法、装置、集群及存储介质。

背景技术

虚拟化技术是一种资源管理技术,将计算设备的各种物理资源予以抽象、转换,然后呈现出来的一个可供分割并任意组合为一个或多个虚拟机的配置环境。其中,物理资源可以是中央处理器(Central Processing Unit,CPU)、内存、磁盘空间和网络适配器等输入输出(Input/Output,I/O)设备。虚拟化技术打破了计算设备内部实体结构间不可切割的障碍,使用户能够以比原本更好的配置方式来应用这些计算设备的硬件资源,因此,虚拟化技术已经广泛应用于计算设备(如服务器、存储设备、计算机)、高性能存储系统(如云计算平台)中。

对于用户而言,提高虚拟机的利用率能够降本增效。目前,用户通过预先设定物理资源的利用率的阈值的方式,确定虚拟机是否处于闲置的状态,因此,确定虚拟机是否闲置的方式准确度低。

发明内容

本申请实施例提供了一种资源闲置的确定方法、装置、集群及存储介质,能够提高确定虚拟机是否闲置的准确度。

第一方面,本申请实施例提供了一种资源闲置的确定方法,包括:

获取虚拟机的日志,日志用于记录虚拟机的性能指标在预设的时间段内的多个指标值;

对多个指标值进行分析,以确定性能指标在连续的多个时间段形成的第一波动特征,第一波动特征用于指示虚拟机运行应用的特征;

根据第一波动特征,确定虚拟机是否处于闲置状态,闲置状态用于指示虚拟机未运行应用。

根据本方案,通过虚拟机的性能指标的指标值,能够分析得到虚拟机在多个时间段内波动特征,波动特征能够反应虚拟机运行应用的情况,从而提高判断虚拟机是否处于闲置状态的准确度。进一步地,在虚拟机是闲置状态的情况下,能够及时将闲置的虚拟机回收,以将回收的虚拟机进行其他业务的处理,提高资源的利用率。此外,通过分析虚拟机的性能指标的波动特征,无需侵入到子(Guest)操作系统(Operation System,OS)中获取应用的各种事件指标(如登录日志,访问日志,界面点击事件等),从而避免了对应用的运行造成影响。

在一种可能的实现方式中,对多个指标值进行分析,以确定性能指标在连续的多个时间段形成的第一波动特征,包括:

对多个指标值进行分析,得到性能指标在时间段内的多个时间点的波动率;

根据第一波动特征,确定虚拟机是否处于闲置状态,包括:

根据多个时间段内的多个时间点的波动率,确定虚拟机是否处于闲置状态。

如此,在海量虚拟机的情况下,通过划分时间段来计算性能指标的波动率,能够避免计算量过大占用大量的计算资源。

在一种可能的实现方式中,对多个指标值进行分析,得到性能指标在时间段内的多个时间点的波动率,包括:

计算性能指标在时间段内的多个指标值的方差值;

根据虚拟机在时间段各自的方差值、时间段内多个指标值,计算性能指标在时间段内的多个时间点的波动率。

在一种可能的实现方式中,方法还包括:

在虚拟机处于闲置状态的情况下,生成提示信息,提示信息用于指示虚拟机处于闲置状态,以用于提示用户虚拟机处于闲置状态。

如此,通过向用户提示虚拟机处于闲置状态,使得用户根据业务的真实情况,确认虚拟机是否是闲置的,用户能够及时将闲置的虚拟机回收,以将回收的虚拟机进行其他业务的处理,提高资源的利用率。

在一种可能的实现方式中,方法还包括:

比较虚拟机的第一波动特征和目标虚拟机的波动特征之间的相似度;

在相似度大于预设的相似度阈值的情况下,将虚拟机标注为目标虚拟机,目标虚拟机为无需确定闲置状态的虚拟机。

如此,能够通过比较目标虚拟机与当前虚拟机的波动特征之间的相似度,确定虚拟机是否是无需确定是否是闲置状态的虚拟机,从而在确定虚拟机是否闲置之前,可将目标虚拟机直接过滤掉,减少计算量。

在一种可能的实现方式中,在相似度大于预设的相似度阈值的情况下,将虚拟机标注为目标虚拟机,包括:

在相似度大于预设的相似度阈值的情况下,生成比较结果,比较结果用于指示虚拟机为目标虚拟机;

向客户端发送比较结果,以用于用户对比较结果的正确性进行确认;

接收客户端发送的确认信息;

在确认信息指示虚拟机为目标虚拟机的情况下,将虚拟机标注为目标虚拟机。

如此,通过用户对比较结果进行确认,能够提高目标虚拟机识别的精准度。

在一种可能的实现方式中,方法还包括:

通过预测模型对多个指标值进行分析,以确定性能指标在未来的多个时间段内的第二波动特征,其中,预测模型是通过多个时间段中每个时间段的样本指标值和每个时间段的波动特征训练得到的;

根据第一波动特征,确定虚拟机是否处于闲置状态,包括:

根据第一波动特征和第二波动特征,确定虚拟机是否处于闲置状态。

如此,可以对虚拟机性能指标在未来的波动情况,从而提高确定虚拟机处于闲置状态的准确性。

第二方面,本申请实施例提供了一种资源闲置的确定装置,包括:

获取模块,用于获取虚拟机的日志,日志用于记录虚拟机的性能指标在预设的时间段内的多个指标值;

分析模块,用于对多个指标值进行分析,以确定性能指标在连续的多个时间段形成的第一波动特征,第一波动特征用于指示虚拟机运行应用的特征;

确定模块,用于根据第一波动特征,确定虚拟机是否处于闲置状态,闲置状态用于指示虚拟机未运行应用。

根据本方案,通过虚拟机的性能指标的指标值,能够分析得到虚拟机在多个时间段内波动特征,从而波动特征能够反应虚拟机运行应用的情况,从而提高判断虚拟机是否处于闲置状态的准确度。进一步地,在虚拟机是闲置状态的情况下,能够及时将闲置的虚拟机回收,以将回收的虚拟机进行其他业务的处理,提高资源的利用率。此外,通过分析虚拟机的性能指标的波动特征,无需侵入到客人(Guest)操作系统(Operation System,OS)中获取应用的各种事件指标(如登录日志,访问日志,界面点击事件等),从而避免了对应用的运行造成影响。

在一种可能的实现方式中,分析模块用于:

对多个指标值进行分析,得到性能指标在时间段内的多个时间点的波动率;

根据第一波动特征,确定虚拟机是否处于闲置状态,包括:

根据多个时间段内的多个时间点的波动率,确定虚拟机是否处于闲置状态。

如此,在海量虚拟机的情况下,通过划分时间段来计算性能指标的波动率,能够避免计算量过大占用大量的计算资源。

在一种可能的实现方式中,分析模块用于:

计算性能指标在时间段内的多个指标值的方差值;

根据虚拟机在时间段各自的方差值、时间段内多个指标值,计算性能指标在时间段内的多个时间点的波动率。

在一种可能的实现方式中,装置还包括:

生成模块,用于在虚拟机处于闲置状态的情况下,生成提示信息,提示信息用于指示虚拟机处于闲置状态,以用于提示用户虚拟机处于闲置状态。

如此,通过向用户提示虚拟机处于闲置状态,使得用户根据业务的真实情况,确认虚拟机是否是闲置的,用户能够及时将闲置的虚拟机回收,以将回收的虚拟机进行其他业务的处理,提高资源的利用率。

在一种可能的实现方式中,装置还包括:

比较模块,用于比较虚拟机的第一波动特征和目标虚拟机的波动特征之间的相似度;

标注模块,用于在相似度大于预设的相似度阈值的情况下,将虚拟机标注为目标虚拟机。

如此,能够通过比较目标虚拟机与当前虚拟机的波动特征之间的相似度,确定虚拟机是否是无需确定是否是闲置状态的虚拟机,从而在确定虚拟机是否闲置之前,可将目标虚拟机直接过滤掉,减少计算量。

在一种可能的实现方式中,在相似度大于预设的相似度阈值的情况下,将虚拟机标注为目标虚拟机,包括:

在相似度大于预设的相似度阈值的情况下,生成比较结果,比较结果用于指示虚拟机为目标虚拟机;

向客户端发送比较结果,以用于用户对比较结果的正确性进行确认;

接收客户端发送的确认信息;

在确认信息指示虚拟机为目标虚拟机的情况下,将虚拟机标注为目标虚拟机。

如此,通过用户对比较结果进行确认,能够提高目标虚拟机识别的精准度。

在一种可能的实现方式中,

分析模块还用于通过预测模型对多个指标值进行分析,以确定性能指标在未来的多个时间段内的第二波动特征;

确定模块用于根据第一波动特征和第二波动特征,确定虚拟机是否处于闲置状态。

如此,可以对虚拟机性能指标在未来的波动情况,从而提高确定虚拟机处于闲置状态的准确性。

第三方面,本申请实施例提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;

所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如第一方面所述的方法。

第四方面,本申请实施例提供了一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如第一方面所述的方法。

第五方面,本申请实施例提供了一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如第一方面所述的方法。

附图说明

图1是本申请实施例提供的一种应用场景的架构图;

图2是本申请实施例提供的一种云计算平台和客户端之间的通信示意图;

图3是本申请实施例提供的资源闲置的确定系统的系统架构图;

图4是本申请实施例提供的一种配置参数的界面示意图;

图5是本申请实施例提供的一种资源闲置的确定方法的流程示意图;

图6是本申请实施例提供的另一种资源闲置的确定方法的流程示意图;

图7是本申请实施例提供的一种资源闲置的确定装置的结构示意图;

图8是本申请实施例提供的一种计算设备的结构示意图;

图9是本申请实施例提供的一种计算设备集群的结构示意图;

图10是本申请实施例提供的另一种计算设备集群的结构示意图。

具体实施方式

为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。

在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。

在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个终端是指两个或两个以上的终端。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

虚拟化技术是一种资源管理技术,将计算设备的各种物理资源予以抽象、转换,然后呈现出来的一个可供分割并任意组合为一个或多个虚拟机的配置环境。其中,物理资源可以是CPU、内存、磁盘空间和网络适配器等I/O设备。虚拟化技术打破了计算设备内部实体结构间不可切割的障碍,使用户能够以比原本更好的配置方式来应用这些计算设备的硬件资源,因此,虚拟化技术已经广泛应用于计算设备(如服务器、存储设备、计算机)、高性能存储系统(如云计算平台)中。

图1是本申请实施例提供的一种应用场景的示意图。如图1所示,本申请实施例提供的应用场景包括客户端和数据中心,客户端和数据中心通过互联网进行数据传输。其中,用户通过客户端能够登录数据中心中的资源,该资源中运行有用户的应用。如图1所示,数据中心包括云管理平台和多个服务器。云管理平台通过数据中心的内部网络与多个服务器进行通信。在本应用场景中,数据中心的资源为虚拟机(Virtual Machine,VM)。

如图1所示,服务器包括硬件层和软件层,硬件层为服务器的常规配置,如内存、网卡、处理器和磁盘。其中,内存、网卡、处理器和磁盘之间通过总线通信。软件层包括安装并运行在服务器上的操作系统(相对虚拟机的操作系统可称为宿主机操作系统),宿主机操作系统中设置有虚拟机管理器(Virtual Machine Manager,VMM)(又可称为Hypervisor),虚拟机管理器的作用是实现虚拟机的计算虚拟化、网络虚拟化以及存储虚拟化,并负责管理虚拟机。

计算虚拟化是指将服务器的处理器和内存的部分提供给虚拟机,网络虚拟化是指将网卡的部分功能(如带宽)提供给虚拟机,存储虚拟化是指将部分磁盘提供给虚拟机。虚拟机管理器还可实现不同虚拟机之间的逻辑隔离并管理虚拟机,例如创建虚拟机、根据硬件层为虚拟机模拟虚拟硬件(硬件模拟功能)、删除虚拟机、转发和/或处理运行在该服务器上的所有虚拟机(例如虚拟机1和虚拟机2)之间的网络报文或转发该服务器上的虚拟机与外部网络之间的网络报文(虚拟交换功能),处理虚拟机产生的I/O等。

不同虚拟机中的运行环境(如虚拟机应用、操作系统和虚拟硬件)是完全隔离的,虚拟机1和虚拟机2之间要进行通信需经过虚拟管理器转发网络报文。

云管理平台用于提供访问接口(如界面或API),用户可操作客户端远程接入访问接口在云管理平台注册云账号和密码,并登录云管理平台,云管理平台对云账号和密码鉴权成功后,用户可进一步在云管理平台付费选择并购买特定规格(处理器、内存、磁盘)的虚拟机,付费购买成功后,云管理平台提供所购买的虚拟机的远程登录账号密码,客户端可远程登录该虚拟机,在该虚拟机中安装并运行用户的应用。

以上仅仅是对一种应用场景的示例性说明,本申请实施例还可以包括其他场景,如对单个计算设备的虚拟化等。

对于用户而言,提高虚拟机的利用率能够降本增效。

目前,在一种情况中,以图1所示的应用场景为基础,用户通过预先设定物理资源的利用率的阈值的方式,确定虚拟机是否处于闲置的状态。例如,如图2所示,用户租用了大量的VM。用户设定CPU利用率的阈值或内存利用率的阈值,客户端将CPU利用率的阈值或内存利用率的阈值发送至云管理平台,云管理平台通过监控CPU利用率或内存利用率,并比较CPU利用率和CPU利用率的阈值,或者,比较内存利用率和内存利用率的阈值,从而确定虚拟机是够是闲置的。例如,云管理平台能够监控VM21的CPU利用率或内存利用率。云管理平台通过比较VM21的CPU利用率和CPU利用率的阈值,从而确定VM21是否处于闲置状态。或云管理平台通过比较VM21的内存利用率和内存利用率的阈值,从而确定VM21是否处于闲置状态。若VM21的CPU利用率小于CPU利用率的阈值,则VM21处于闲置状态。云管理平台能够向客户端发送提示信息,从而提示用户,VM21处于闲置状态。用户根据提示信息,进一步确认是否将VM21回收利用。

但是,这种方式逻辑简单,阈值与应用的运行和访问情况无关,无法准确判断虚拟机是否处于闲置状态。

在另一种情况中,通过采集VM上运行的应用的事件指标来判断虚拟机是否处于闲置状态。例如,通过应用的登录日志、应用的访问日志、应用的界面点击事件等指标来确定虚拟机是否处于闲置状态。但是,这种方式需要采集大量的应用的数据,逻辑复杂,并需要侵入到子操作系统(Guest OS),导致应用运行出现风险。

基于此,本申请实施例提出了一种资源闲置的确定方法、装置、集群及存储介质,该方法通过对虚拟机的性能指标在一段时间内的指标值分析,从而能够得到性能指标在这段时间内的波动特征,根据性能指标在多段时间内的波动特征,确定虚拟机是否处于闲置状态。性能指标的波动特征能够反应虚拟机中运行应用的情况,从而无需侵入到子操作系统,仅通过虚拟机的性能指标的波动特征,即可确定虚拟机是否处于闲置状态,避免了对应用的运行造成影响的同时,也能够提高判断虚拟机是否闲置的准确度。

接下来对本申请实施例提供的资源闲置的确定方法可能应用的资源闲置的确定系统进行介绍。图3示出了本申请实施例提供的一种资源闲置的确定系统的架构示例图。本申请实施例提供了资源闲置的确定方法可以应用于如图3所示的系统架构图。如图3所示,资源闲置的确定系统包括终端设备310,设备集群320。

其中,终端设备310可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。本方案中涉及的终端设备的示例性实施例包括但不限于搭载iOS、android、Windows、鸿蒙系统(Harmony OS)或者其他操作系统的电子设备。本申请实施例对电子设备的类型不做具体限定。

其中,设备集群320可以用独立的电子设备或者是多个电子设备组成的设备集群来实现。在一些可能的实现方式中,设备集群320中的电子设备可为终端也可为计算机,还可以为服务器。在一个例子中,本方案中涉及的服务器可以用于提供云服务,其可以为一种可以与其他的设备建立通信连接、且能为其他的设备提供运算功能和/或存储功能的服务器或者是超级终端。其中,本方案中涉及的服务器可以是硬件服务器,也可以植入虚拟化环境中,例如,本方案中涉及的服务器可以是在包括一个或多个其他虚拟机的硬件服务器上执行的虚拟机。

其中,终端设备310通过网络与设备集群320通过网络进行通信。网络可以为有线网络或无线网络。示例地,有线网络可以为电缆网络、光纤网络、数字数据网(Digital DataNetwork,DDN)等,无线网络可以为电信网络、内部网络、互联网、局域网络(Local AreaNetwork,LAN)、广域网络(Wide Area Network,WAN)、无线局域网络(Wireless Local AreaNetwork,WLAN)、城域网(Metropolitan Area Network,MAN)、公共交换电话网络(PublicService Telephone Network,PSTN)、蓝牙网络、紫蜂网络(ZigBee)、移动电话(GlobalSystem for Mobile Communications,GSM)、CDMA(Code Division Multiple Access)网络、CPRS(GeneralPacketRadioService)网络等或其任意组合。可以理解的是,网络可使用任何已知的网络通信协议来实现不同客户端层和网关之间的通信,上述网络通信协议可以是各种有线或无线通信协议,诸如以太网、通用串行总线(universal serial bus,USB)、火线(firewire)、全球移动通讯系统(global system for mobile communications,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址接入(code divisionmultiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA)、长期演进(long term evolution,LTE)、新空口(new radio,NR)、蓝牙(bluetooth)、无线保真(wireless fidelity,Wi-Fi)等通信协议。

本申请实施例中,设备集群中获取虚拟机的日志,所述日志用于记录所述虚拟机的性能指标在预设的时间段内的多个指标值;对所述多个指标值进行分析,以确定所述性能指标在连续的多个所述时间段形成的第一波动特征,所述第一波动特征用于指示所述虚拟机运行应用的特征;根据所述第一波动特征,确定所述虚拟机是否处于闲置状态,所述闲置状态用于指示虚拟机未运行应用。如此,在虚拟机处于闲置状态的情况下,管理平台能够向终端设备发送提示信息。用户根据提示信息,决定是否回收虚拟机,以使回收的虚拟机处理其他业务,提高资源的利用率。同时,通过虚拟机的性能指标的指标值,能够分析得到虚拟机在多个时间段内波动特征,波动特征能够反应虚拟机运行应用的情况,从而提高判断虚拟机是否处于闲置状态的准确度。此外,通过分析虚拟机的性能指标的波动特征,无需侵入到子(Guest)操作系统(Operation System,OS)中获取应用的各种事件指标(如登录日志,访问日志,界面点击事件等),从而避免了对应用的运行造成影响。

示例性地,在具体实现的过程中,如图4所示,设备集群320可以部署有资源管理平台321,资源管理平台321用于管理虚拟机。资源管理平台可以是软件,也可以是软件和软件所在的电子设备形成的系统。资源管理平台可以部署在一个电子设备上,还可以部署在多个电子设备上。在图1所示的应用场景中,资源管理平台即为云管理平台。

在一些示例中,设备集群还可以部署有工单系统和信息通知系统(如邮件/短信系统),具体功能可参见下文中对资源闲置的确定方法的说明。

对应地,终端设备可以部署客户端,用户通过客户端能够登录以及访问虚拟机,并在虚拟机中构建或删除应用等。

在进行确定虚拟机的状态是否闲置之前,用户需要通过终端设备上的客户端,在资源管理平台上部署虚拟机闲置的判断策略。其中,判断策略包括需要检测的虚拟机的性能指标、虚拟机处于闲置状态的条件、性能指标的取值标准、资源分析范围以及需要忽略的资源的列表。在这里,虚拟机的性能指标可以包括CPU的利用率、内存的利用率、磁盘的利用率和IO的利用率。性能指标的取值标准可以包括平均值、最大值、最小值。资源分析范围是指采集虚拟机的性能指标的指标值的时间范围,例如资源分析范围为7天、30天等,用户可自行设置资源分析范围的具体数值,对此不作具体限定。

示例性地,如图4所示,用户通过人机交互界面配置资源分析范围,资源分析范围包括多个选项,分别是7天、30天、180天和自定义选项。用户还能够通过人机交互界面选择需要忽略的资源,从而使得忽略的资源列表中的虚拟机是无需判断其是否处于闲置状态。

用户还能够通过人机交互界面配置虚拟机处于闲置状态的条件,如图4所示,条件分别包括设置条件、触发配置。其中,设置条件包括多指标与和多指标或。其中,多指标与是指多个指标均符合触发配置选项指示的条件,即可判定虚拟机处于闲置状态。多指标或是指多个指标中的一个指标满足触发配置选项指示的条件,即可判定虚拟机处于闲置状态。

判断策略配置完成后,可将配置策略发送至资源管理平台。根据判断策略,资源管理平台获取虚拟机的日志,所述日志用于记录所述虚拟机的性能指标在预设的时间段内的多个指标值;对所述多个指标值进行分析,以确定所述性能指标在连续的多个所述时间段形成的第一波动特征,所述第一波动特征用于指示所述虚拟机运行应用的特征;根据所述第一波动特征,确定所述虚拟机是否处于闲置状态,所述闲置状态用于指示虚拟机未运行应用。

接下来,结合上述提供的资源闲置的确定系统,以识别一个虚拟机是否处于闲置状态为例,对本申请实施例提供的一种资源闲置的确定方法进行详细介绍。

图5是本申请实施例提供的资源闲置的确定方法的流程示意图。本申请实施例可应用在图3所示的系统中的设备集群上,具体可以应用在服务器或一般计算机上。如图5所示,本申请实施例提供的资源闲置的确定方法至少包括如下步骤:

S501,获取虚拟机的日志,日志用于记录虚拟机的性能指标在预设的时间段内的多个指标值。

虚拟机的日志记载了虚拟机的多种性能指标在预设时间段内的指标值。在这里,一个时间段内包括性能指标在多个时间点的指标值。例如,时间段为一天,一天包括12个小时,那么日志可以记录虚拟机的CPU在每个小时的利用率。

预设的时间段可以是预先配置的,例如,如图4所示,用户能够通过客户端预先配置采集周期。例如,采集周期为2天,那么每次仅采集两天的性能指标的数据。

在这里,性能指标可以有多种,如CPU利用率、内存利用率、磁盘利用率等。在一些示例中,日志包括多种性能指标在预设的时间段内的指标值。

示例性地,如图6所示,以图1的应用场景为例,云管理平台中可以部署有虚拟机闲置的识别装置。虚拟机闲置的识别装置能够采集数据中心中的虚拟机的数据,从而确定虚拟机的性能指标在预设的时间段内的指标值。

在一些实施例中,在S501之前,还需要判断虚拟机是否为目标虚拟机。目标虚拟机是指是否需要判断该虚拟机是示例性地,资源管理平台中预先配置有目标虚拟机的身份标识。例如,如图6所示,用户通过客户端将目标虚拟机的身份标识标注出来,并发送至虚拟机。比较虚拟机的身份标识是否与目标虚拟机的身份标识相同。在虚拟机的身份标识与目标虚拟机的身份标识相同的情况下,确定该虚拟机为目标虚拟机,并将该虚拟机的身份标识存储,添加至目标虚拟机的身份标识库中。

S502,对多个指标值进行分析,以确定性能指标在连续的多个时间段形成的第一波动特征,第一波动特征用于指示虚拟机运行应用的特征。

S503,根据第一波动特征,确定虚拟机是否处于闲置状态,闲置状态用于指示虚拟机未运行应用。

性能指标在预设的时间段内有多个指标值,对多个时间段内的多个指标值进行数据分析,能够得到数据的波动特征。数据的波动特征能够反应虚拟机运行应用的特征,如虚拟机是否是周期性运行应用,虚拟机未运行应用的时间等。在这里,虚拟机未运行应用的情况有多种,如虚拟机长期关机、虚拟机部署的应用无人使用等。

在一种可能的实现方式中,在用户所拥有的虚拟机的数量较多的情况下,由于数据量较大,为了节省计算资源,可分批对性能指标进行数据分析。示例性地,如图4所示,根据采集周期,对性能指标进行分析,如此,使得资源管理平台无需分析大量的数据,减少计算资源的占用。

在本申请实施例中,波动特征可以是通过对多个指标值进行分析得到的。

示例性地,性能指标为虚拟机的运行状态。性能指标的指标值连续一周或一个月均为0,则虚拟机属于长期关机状态,那么第一波动特征为空。

又一示例性地,虚拟机未部署应用的情况下,性能指标的指标值持续为同一个值,那么第一波动特征即为无波动。在本示例中,作为一种可能的实现方式,对性能指标的多个指标值进行分析,能够确定性能指标在多个时间段内的多个时间点的波动率。

具体地,计算所述性能指标在所述时间段内的多个指标值的方差值;根据所述虚拟机在所述时间段各自的方差值、所述时间段内多个指标值,计算所述性能指标在所述时间段内的多个时间点的波动率。其中,波动率为方差值与目标平均值之间的比值。目标平均值为从上一个时间点到当前时间点之间的指标值的平均值。例如,1天内有12个小时,可以计算每小时的波动率,那么一天共有12个波动点。上午7:00的波动率为性能指标在一天内的指标值的方差值与目标平均值之间的比值,其中,目标平局值为性能指标在上午6:01至上午7:00之间的指标值的平均值。

在波动率小于预设的百分比(如1%、1.5%等)的情况下,则表示虚拟机处于闲置状态。在这里,预设的百分比还可以是其他数值,具体用户可根据自身情况调整,这里不作具体限定。

又一示例性地,虚拟机部署应用,性能指标的指标值在每个时间段(如每天)中的固定时间,性能指标的指标值是变化的,而其他时间段的指标值均为同一个数值,则表示应用运行的任务为周期性任务,除执行周期性任务以外,其他时间虚拟机处于闲置状态。在本示例中,作为一种可能的实现方式,通过计算性能指标在多个时间点的波动率来确定虚拟机是否处于闲置状态。具体可参见上述示例对波动率的说明,在此不再赘述。

又一示例性地,虚拟机部署应用,第一波动特征为性能指标的指标值在每个预设的时间段内(如每天、每两天等)的固定时间段均低于预设的阈值,且没有变化,则表示虚拟机闲置。

在一些实施例中,根据虚拟机的性能指标的指标值,还可以通过人工智能预测性能指标在未来的波动特征。具体地,通过预测模型对所述多个指标值进行分析,以确定所述性能指标在未来的多个时间段内的第二波动特征,其中,所述预测模型是通过多个时间段中每个时间段的样本指标值和所述每个时间段的波动特征训练得到的。根据第一波动特征和第二波动特征共同分析虚拟机是否处于闲置状态。具体分析原理可参见上述S502至S503中对第一波动特征的说明,在此不再详细说明。

在本申请实施例中,虚拟机的性能指标有多个,可以结合多个性能指标的波动特征来判断虚拟机是否处于闲置状态。例如,多个性能指标包括内存的利用率和CPU的利用率,在二者的波动特征均满足虚拟机处于闲置状态的判断条件的情况下,确定虚拟机处于闲置状态。或在二者中任意一者的波动特征均满足虚拟机处于闲置状态的判断条件的情况下,确定虚拟机处于闲置状态。

在一些实施例中,在S503之前,还需要判断虚拟机是否为目标虚拟机。具体地,比较所述虚拟机的第一波动特征和所述目标虚拟机的波动特征之间的相似度。在所述相似度大于预设的相似度阈值的情况下,将所述虚拟机标注为目标虚拟机,所述目标虚拟机为无需确定闲置状态的虚拟机。

目标虚拟机即为可以忽略的虚拟机,无需判断该虚拟机是否处于闲置状态。通常,目标虚拟机中持续运行应用,且应用持续执行任务。因此,在判断虚拟机是否处于闲置状态之前,需要判断虚拟机是否是可以忽略的虚拟机。

在一种可能的实现方式中,可以通过用户进一步确认该虚拟机是否是可以忽略的虚拟机。具体地,在所述相似度大于预设的相似度阈值的情况下,生成比较结果,所述比较结果用于指示所述虚拟机为目标虚拟机;向所述客户端发送所述比较结果,以用于所述用户对所述比较结果的正确性进行确认;接收所述客户端发送的确认信息;在所述确认信息指示所述虚拟机为目标虚拟机的情况下,将所述虚拟机标注为目标虚拟机。

示例性地,如图6所示,虚拟机闲置识别装置能够先判断虚拟机是否为可以忽略的虚拟机。例如,在判断虚拟机61是否处于闲置状态之前,需要对比虚拟机61的第一波动特征和目标虚拟机之间的波动特征的相似度。若相似度大于预设的相似度阈值,将生成比较结果,比较结果虚拟机61为目标虚拟机,并向客户端发送比较结果,用户基于比较结果确认虚拟机61是否是目标虚拟机。

在一些实施例中,判断虚拟机的状态后,还需要生成提示信息,并将提示信息发送至客户端,从而提示用户虚拟机是否是处于闲置状态,以使用户根据实际情况确认是否将闲置的虚拟机回收。

示例性地,如图6所示,云管理平台中部署有邮件/短信系统,云管理平台将提示信息通过邮件、短信的方式发送至客户端。云管理平台还部署有工单系统,云管理平台可以将提示信息通过工单的形式发送至客户端。

根据本申请实施例,通过虚拟机的性能指标的指标值,能够分析得到虚拟机在多个时间段内波动特征,波动特征能够反应虚拟机运行应用的情况,从而提高判断虚拟机是否处于闲置状态的准确度。进一步地,在虚拟机是闲置状态的情况下,能够及时将闲置的虚拟机回收,以将回收的虚拟机进行其他业务的处理,提高资源的利用率。此外,通过分析虚拟机的性能指标的波动特征,无需侵入到子(Guest)操作系统(Operation System,OS)中获取应用的各种事件指标(如登录日志,访问日志,界面点击事件等),从而避免了对应用的运行造成影响。

基于与本申请方法实施例相同的构思,本申请实施例还提供了一种资源闲置的确定装置。资源闲置的确定装置包括若干个模块,各个模块用于执行本申请实施例提供的个人信息识别方法中的各个步骤,关于模块的划分在此不做限制。所属领域的技术人员可以清楚地了解到,实际应用中,可以根据需要而将本申请实施例提供的资源闲置的确定方法中的各个步骤分配由不同的模块完成,即将装置的内部结构划分成不同的模块,以完成以上描述的全部或者部分功能。实施例中的各模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上模块集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

示例地,资源闲置的确定装置用于执行本申请实施例提供的资源闲置的确定方法,图7是本申请实施例提供的资源闲置的确定装置的结构示意图。如图7所示,本申请实施例提供的资源闲置的确定装置,包括:

获取模块701,用于获取虚拟机的日志,所述日志用于记录所述虚拟机的性能指标在预设的时间段内的多个指标值;

分析模块702,用于对所述多个指标值进行分析,以确定所述性能指标在连续的多个所述时间段形成的第一波动特征,所述第一波动特征用于指示所述虚拟机运行应用的特征;

确定模块703,用于根据所述第一波动特征,确定所述虚拟机是否处于闲置状态,所述闲置状态用于指示虚拟机未运行应用。

根据本方案,通过虚拟机的性能指标的指标值,能够分析得到虚拟机在多个时间段内波动特征,从而波动特征能够反应虚拟机运行应用的情况,从而提高判断虚拟机是否处于闲置状态的准确度。进一步地,在虚拟机是闲置状态的情况下,能够及时将闲置的虚拟机回收,以将回收的虚拟机进行其他业务的处理,提高资源的利用率。此外,通过分析虚拟机的性能指标的波动特征,无需侵入到客人(Guest)操作系统(Operation System,OS)中获取应用的各种事件指标(如登录日志,访问日志,界面点击事件等),从而避免了对应用的运行造成影响。

在一种可能的实现方式中,所述分析模块用于:

对所述多个指标值进行分析,得到所述性能指标在所述时间段内的多个时间点的波动率;

所述根据所述第一波动特征,确定所述虚拟机是否处于闲置状态,包括:

根据多个所述时间段内的多个时间点的波动率,确定所述虚拟机是否处于闲置状态。

如此,在海量虚拟机的情况下,通过划分时间段来计算性能指标的波动率,能够避免计算量过大占用大量的计算资源。

在一种可能的实现方式中,所述分析模块用于:

计算所述性能指标在所述时间段内的多个指标值的方差值;

根据所述虚拟机在所述时间段各自的方差值、所述时间段内多个指标值,计算所述性能指标在所述时间段内的多个时间点的波动率。

在一种可能的实现方式中,所述装置还包括:

生成模块,用于在所述虚拟机处于闲置状态的情况下,生成提示信息,所述提示信息用于指示所述虚拟机处于闲置状态,以用于提示用户所述虚拟机处于闲置状态。

如此,通过向用户提示虚拟机处于闲置状态,使得用户根据业务的真实情况,确认虚拟机是否是闲置的,用户能够及时将闲置的虚拟机回收,以将回收的虚拟机进行其他业务的处理,提高资源的利用率。

在一种可能的实现方式中,所述装置还包括:

比较模块,用于比较所述虚拟机的第一波动特征和所述目标虚拟机的波动特征之间的相似度;

标注模块,用于在所述相似度大于预设的相似度阈值的情况下,将所述虚拟机标注为目标虚拟机。

如此,能够通过比较目标虚拟机与当前虚拟机的波动特征之间的相似度,确定虚拟机是否是无需确定是否是闲置状态的虚拟机,从而在确定虚拟机是否闲置之前,可将目标虚拟机直接过滤掉,减少计算量。

在一种可能的实现方式中,所述在所述相似度大于预设的相似度阈值的情况下,将所述虚拟机标注为目标虚拟机,包括:

在所述相似度大于预设的相似度阈值的情况下,生成比较结果,所述比较结果用于指示所述虚拟机为目标虚拟机;

向所述客户端发送所述比较结果,以用于所述用户对所述比较结果的正确性进行确认;

接收所述客户端发送的确认信息;

在所述确认信息指示所述虚拟机为目标虚拟机的情况下,将所述虚拟机标注为目标虚拟机。

如此,通过用户对比较结果进行确认,能够提高目标虚拟机识别的精准度。

在一种可能的实现方式中,

所述分析模块还用于通过预测模型对所述多个指标值进行分析,以确定所述性能指标在未来的多个时间段内的第二波动特征;

所述确定模块用于根据所述第一波动特征和所述第二波动特征,确定所述虚拟机是否处于闲置状态。

如此,可以对虚拟机性能指标在未来的波动情况,从而提高确定虚拟机处于闲置状态的准确性。

在本申请实施例中,获取模块、分析模块和确定模块均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来以获取模块为例,介绍获取模块的实现方式。类似的,分析模块和确定模块的实现方式可以参考获取模块的实现方式。

模块作为软件功能单元的一种举例,获取模块可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,获取模块可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。

同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。

模块作为硬件功能单元的一种举例,获取模块可以包括至少一个计算设备,如服务器等。或者,获取模块也可以是利用专用集成电路(application-specific integratedcircuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。

获取模块包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。获取模块包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,获取模块包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。

需要说明的是,在其他实施例中,获取模块可以用于执行资源闲置的确定方法中的任意步骤,分析模块可以用于执行资源闲置的确定方法中的任意步骤,确定模块可以用于执行资源闲置的确定方法中的任意步骤,获取模块、分析模块、以及确定模块负责实现的步骤可根据需要指定,通过获取模块、分析模块、以及确定模块分别实现资源闲置的确定方法中不同的步骤来实现资源闲置的确定装置的全部功能。

本申请还提供一种资源闲置的确定系统,如图2所示,包括:

资源闲置的确定装置,用于获取虚拟机的日志,所述日志用于记录所述虚拟机的性能指标在预设的时间段内的多个指标值;对所述多个指标值进行分析,以确定所述性能指标在连续的多个所述时间段形成的第一波动特征,所述第一波动特征用于指示所述虚拟机运行应用的特征;根据所述第一波动特征,确定所述虚拟机是否处于闲置状态,所述闲置状态用于指示虚拟机未运行应用。。

通知装置,用于向客户端发送提示信息。

资源闲置的确定装置和通知装置均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来介绍资源闲置的确定装置的实现方式。类似的,通知装置的实现方式可以参考资源闲置的确定装置的实现方式。

模块作为软件功能单元的一种举例,资源闲置的确定装置可以包括运行在计算实例上的代码。其中,计算实例可以是物理主机(计算设备)、虚拟机、容器等计算设备中的至少一种。进一步地,上述计算设备可以是一台或者多台。例如,资源闲置的确定装置可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该应用程序的多个主机/虚拟机/容器可以分布在相同的region中,也可以分布在不同的region中。用于运行该代码的多个主机/虚拟机/容器可以分布在相同的AZ中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。

同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个VPC中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内。同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。

模块作为硬件功能单元的一种举例,资源闲置的确定装置可以包括至少一个计算设备,如服务器等。或者,资源闲置的确定装置也可以是利用ASIC实现、或PLD实现的设备等。其中,上述PLD可以是CPLD、FPGA、GAL或其任意组合实现。

资源闲置的确定装置包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。资源闲置的确定装置包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,资源闲置的确定装置包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。

本申请还提供一种计算设备800。如图8所示,计算设备800包括:总线801、处理器802、存储器803和通信接口804。处理器802、存储器803和通信接口804之间通过总线801通信。计算设备800可以是服务器或终端设备。应理解,本申请不限定计算设备800中的处理器、存储器的个数。

总线801可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线104可包括在计算设备800各个部件(例如,存储器803、处理器802、通信接口804)之间传送信息的通路。

处理器802可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。

存储器803可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器802还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。

存储器803中存储有可执行的程序代码,处理器802执行该可执行的程序代码以分别实现前述获取模块、分析模块和确定模块的功能,从而实现资源闲置的确定方法。也即,存储器803上存有用于执行资源闲置的确定方法的指令。

或者,存储器803中存储有可执行的代码,处理器802执行该可执行的代码以分别实现前述资源闲置的确定装置和通知装置的功能,从而实现资源闲置的确定方法。也即,存储器803上存有用于执行资源闲置的确定方法的指令。

通信接口804使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备100与其他设备或通信网络之间的通信。

本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。

如图9所示,所述计算设备集群包括至少一个计算设备800。计算设备集群中的一个或多个计算设备800中的存储器803中可以存有相同的用于执行资源闲置的确定方法的指令。

在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备800的存储器803中也可以分别存有用于执行资源闲置的确定方法的部分指令。换言之,一个或多个计算设备800的组合可以共同执行用于执行资源闲置的确定方法的指令。

需要说明的是,计算设备集群中的不同的计算设备800中的存储器803可以存储不同的指令,分别用于执行资源闲置的确定装置的部分功能。也即,不同的计算设备800中的存储器803存储的指令可以实现获取模块、分析模块和确定模块中的一个或多个模块的功能。

在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图10示出了一种可能的实现方式。如图10所示,两个计算设备800A和800B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备800A中的存储器803中存有执行获取模块的功能的指令。同时,计算设备800B中的存储器803中存有执行分析模块和确定模块的功能的指令。

图10所示的计算设备集群之间的连接方式可以是考虑到本申请提供的资源闲置的确定方法需要(例如大量地存储数据),因此考虑将分析模块和确定模块实现的功能交由计算设备800B执行。

应理解,图10中示出的计算设备800A的功能也可以由多个计算设备800完成。同样,计算设备800B的功能也可以由多个计算设备800完成。

本申请实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图9和图10所述计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备800中的存储器803中可以存有相同的用于执行资源闲置的确定方法的指令。

在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备800的存储器803中也可以分别存有用于执行资源闲置的确定方法的部分指令。换言之,一个或多个计算设备800的组合可以共同执行用于执行资源闲置的确定方法的指令。

需要说明的是,计算设备集群中的不同的计算设备800中的存储器803可以存储不同的指令,用于执行资源闲置的确定系统的部分功能。也即,不同的计算设备800中的存储器803存储的指令可以实现资源闲置的确定装置、通知装置中的一个或多个装置的功能。

本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行资源闲置的确定方法。

本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行资源闲置的确定方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的保护范围。

相关技术
  • 一种实验室危化品闭环管理系统和方法
  • 一种中小包装成品油的智能化仓库管理系统
  • 一种新型分布式智能危化品管理仓库及管理系统
  • 一种危化品仓库管理系统
技术分类

06120116337002