CN101907917B - 一种测量虚拟机能耗的方法和系统 - Google Patents
一种测量虚拟机能耗的方法和系统 Download PDFInfo
- Publication number
- CN101907917B CN101907917B CN201010236796.2A CN201010236796A CN101907917B CN 101907917 B CN101907917 B CN 101907917B CN 201010236796 A CN201010236796 A CN 201010236796A CN 101907917 B CN101907917 B CN 101907917B
- Authority
- CN
- China
- Prior art keywords
- energy consumption
- virtual machine
- feature
- equipment
- event
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种测量虚拟机能耗的方法和系统。其中,该方法包括通过监测硬件性能监视器HPM采集各个虚拟机在运行时的处理器硬件能耗特征;通过监测I/O设备访问事件采集各个虚拟机在运行时的I/O设备能耗特征;利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗。本发明通过对各个虚拟机在运行时的处理器硬件和I/O设备能耗特征的采集准确地捕获各个虚拟机在运行时的能耗特征,从而可以利用这些能耗特征准确地计算出各个虚拟机的能耗,有效地解决了现有技术中不能准确测量各个虚拟机能耗的问题。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种测量虚拟机能耗的方法和系统。
背景技术
云计算环境中数量众多的计算和存储设备无时无刻不在消耗着大量的能源,因此,能耗已经成为云计算技术发展关注的焦点之一。如何有效地对云计算环境的能耗进行评估和优化进而减少能耗成本,是当前云计算技术中亟待解决的技术问题。另外,从运营角度出发,在先期的基础设施搭建完成后,云计算环境在运行时的主要开销就是能耗,因此,如何基于能耗对用户进行合理的收费,也是关系到云计算技术能否被广泛接受并应用的关键问题。
虚拟机是云计算环境的基本管理单元,因此,云计算环境的能耗管理基础就是虚拟机的能耗管理,而能耗测量又是进行能耗管理(例如,评估、优化、计费等)的必要前提。但是,虚拟机的能耗信息很难被直接获取,这是因为诸如电流、电压、功率等和能耗相关的信息都只能在物理器件上测得。当一台物理机上部署了多台虚拟机时,只有采用将测量所得的物理机能耗信息根据一定的规则分派到相关虚拟机的方法对虚拟机能耗进行估测。
目前,最简单的获得虚拟机能耗信息的方法是将物理机的实测能耗平均分配给运行在其上的各个虚拟机,这种貌似公平的做法忽略了虚拟机在运行时存在的行为差异,例如,不同的负载类型(CPU密集型、内存密集型、I/O密集型等)和不同的负载压力(重负荷运行、轻负荷运行等),其结果并不能够真实地反映出虚拟机的真实能耗。稍微复杂的虚拟机能耗估算方法是将物理机的能耗根据不同虚拟机的CPU使用时间按照比例进行分派,例如,Amazon EC2使用的CPU hour。这种做法忽略了虚拟机在运行过程中除了CPU上的计算行为以外的其他行为(例如,访问内存、访问I/O设备)所产生的能耗,测量过程不全面从而导致结果不够准确。另外,即便是对CPU使用行为的监测,因为当前主流CPU普遍支持多个能耗级别(例如,不同的执行频率)并可在运行时做切换,所以,仅根据执行时间的长短也不能准确地测量出和CPU相关的虚拟机能耗。
综上所述,如何准确地测量虚拟机能耗已经成为云计算环境能耗管理所面临的首要和关键问题。
发明内容
本发明要解决的一个技术问题是提供一种测量虚拟机能耗的方法,能够准确地测量各个虚拟机的能耗。
本发明提供了一种测量虚拟机能耗的方法,包括通过监测硬件性能监视器HPM采集各个虚拟机在运行时的处理器硬件能耗特征;通过监测I/O设备访问事件采集各个虚拟机在运行时的I/O设备能耗特征;利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗。
根据本发明方法的一个实施例,利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗的步骤包括:利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征与物理机实际运行时的能耗之间的线性关系动态地建立能耗模型;利用能耗模型计算各个虚拟机的能耗。
根据本发明方法的另一实施例,采集各个虚拟机在运行时的处理器硬件能耗特征的步骤包括:采集各个虚拟机在运行时的CPU能耗特征;采集各个虚拟机在运行时的内存能耗特征。
根据本发明方法的又一实施例,采集各个虚拟机在运行时的I/O设备能耗特征的步骤包括:采集各个虚拟机在运行时的磁盘设备能耗特征;采集各个虚拟机在运行时的网络设备能耗特征。
根据本发明方法的再一实施例,在计算各个虚拟机的能耗之前,该方法还包括:将采集到的各个虚拟机在运行时的处理器硬件和I/O设备能耗特征映射到对应的虚拟机事件统计信息中。
根据本发明方法的再一实施例,各个虚拟机在运行时的CPU能耗特征包括CPU的执行周期和完成指令数中的至少一种;各个虚拟机在运行时的内存能耗特征包括对内存的访问次数。
根据本发明方法的再一实施例,各个虚拟机在运行时的I/O设备能耗特征包括I/O设备的流量信息。
本发明测量虚拟机能耗的方法,通过对各个虚拟机在运行时的处理器硬件和I/O设备能耗特征的采集准确地捕获各个虚拟机在运行时的能耗特征,从而可以利用这些能耗特征准确地计算出各个虚拟机的能耗,有效地解决了现有技术中不能准确测量各个虚拟机能耗的问题。
本发明要解决的另一技术问题是提供一种测量虚拟机能耗的系统,能够准确地测量各个虚拟机的能耗。
本发明还提供了一种测量虚拟机能耗的系统,包括:处理器硬件事件采集装置,用于通过监测硬件性能监视器HPM采集各个虚拟机在运行时的处理器硬件能耗特征;虚拟机管理器事件采集装置,用于通过监测I/O设备访问事件采集各个虚拟机在运行时的I/O设备能耗特征;物理机能耗测量装置,用于测量物理机实际运行时的能耗;虚拟机能耗计算装置,分别与处理器硬件事件采集装置、虚拟机管理器事件采集装置以及物理机能耗测量装置相连,用于利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗。
根据本发明系统的一个实施例,处理器硬件事件采集装置包括:HPM配置器,用于在各个虚拟机启动时配置对HPM的控制指令;HPM控制器,用于控制HPM对各个虚拟机在运行时的处理器硬件能耗特征的采集;HPM读取器,用于从HPM中读取各个虚拟机在运行时的处理器硬件能耗特征、对HPM的中断进行处理并将读取到的各个虚拟机在运行时的处理器硬件能耗特征映射到对应的虚拟机事件统计信息中。
根据本发明系统的另一实施例,虚拟机管理器事件采集装置还用于将采集到的各个虚拟机在运行时的I/O设备能耗特征映射到对应的虚拟机事件统计信息中。
根据本发明系统的又一实施例,虚拟机能耗计算装置包括:虚拟机事件统计信息采集器,用于采集映射到对应的虚拟机事件统计信息中的各个虚拟机上的能耗特征;虚拟机能耗计算器,与虚拟机事件统计信息采集器相连,用于利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征与物理机实际运行时的能耗之间的线性关系动态地建立能耗模型,并利用能耗模型计算各个虚拟机的能耗。
根据本发明系统的再一实施例,处理器硬件包括CPU和内存,I/O设备包括磁盘设备和网络设备。
根据本发明系统的再一实施例,各个虚拟机在运行时的CPU能耗特征包括CPU的执行周期和完成指令数中的至少一种;各个虚拟机在运行时的内存能耗特征包括虚拟机对内存的访问次数;各个虚拟机在运行时的I/O设备能耗特征包括I/O设备的流量信息。
本发明测量虚拟机能耗的系统,通过对各个虚拟机在运行时的处理器硬件和I/O设备能耗特征的采集准确地捕获各个虚拟机在运行时的能耗特征,从而可以利用这些能耗特征准确地计算出各个虚拟机的能耗,有效地解决了现有技术中不能准确测量各个虚拟机能耗的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中:
图1是本发明测量虚拟机能耗的方法的第一实施例的流程示意图。
图2是本发明测量虚拟机能耗的方法的第五实施例的流程示意图。
图3是本发明测量虚拟机能耗的系统的第一实施例的结构示意图。
图4是本发明测量虚拟机能耗的系统的第二实施例的结构示意图。
图5是本发明测量虚拟机能耗的系统的第四实施例的结构示意图。
图6是本发明测量虚拟机能耗的系统的第五实施例的结构示意图。
图7是利用本发明计算Xen虚拟机能耗的示意图。
图8是Xen虚拟机的Hypervisor事件采集示意图。
图9是Xen虚拟机I/O设备访问流量信息和Domain之间的映射关系示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。
如何准确地测量虚拟机的能耗已经成为云计算环境能耗管理所面临的首要和关键问题,而该问题又涉及到了两个子问题:如何全面并准确地捕捉虚拟机的能耗特征以及如何利用捕捉到的能耗特征准确地计算各个虚拟机的能耗。
为解决虚拟机能耗测量所面临的问题,本发明提出了一种测量虚拟机能耗的方法与系统。其全面考虑了虚拟机运行过程中在处理器硬件和I/O设备上产生的能耗影响,并采集相关的处理器硬件事件和虚拟机管理器事件作为虚拟机的能耗特征,然后通过对物理机的实测能耗与在其上运行的所有虚拟机的能耗特征之间的线性关系进行分析,进而计算出单个虚拟机的能耗。
图1是本发明测量虚拟机能耗的方法的第一实施例的流程示意图。
如图1所示,该实施例包括以下步骤:
S102,通过监测硬件性能监视器(Hardware Performance Monitor,HPM)采集各个虚拟机在运行时的处理器硬件能耗特征,其中,HPM是当前主流处理器普遍支持的一套专用寄存器,其可以在处理器运行时对处理器硬件上相关的一系列性能事件进行监测并计数;
S104,通过监测I/O设备访问事件采集各个虚拟机在运行时的I/O设备能耗特征,其中,各个虚拟机在运行时的I/O设备能耗特征可以包括I/O设备的流量信息;
S106,利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗。
该实施例通过对各个虚拟机在运行时的处理器硬件和I/O设备能耗特征的采集准确地捕获各个虚拟机在运行时的能耗特征,从而可以利用这些能耗特征准确地计算出各个虚拟机的能耗,有效地解决了现有技术中不能准确测量各个虚拟机能耗的问题。
在本发明方法的第二实施例中,利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗的步骤包括:
利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征与物理机实际运行时的能耗之间的线性关系(即,各虚拟机在处理器硬件上的能耗+各虚拟机在I/O设备上的能耗=物理机实际运行时的能耗)动态地建立能耗模型(即,确定在处理器硬件上的能耗特征系数以及在I/O设备上的能耗特征系数);
利用能耗模型计算各个虚拟机的能耗,即,可以根据上述确定的在处理器硬件上的能耗特征系数以及在I/O设备上的能耗特征系数以及采集到的各个虚拟机的能耗特征计算出各虚拟机的能耗。
该实施例能够动态地建立能耗模型,与静态能耗模型相比,能够更准确地测量出各个虚拟机在实际运行时的真实能耗。
在本发明方法的第三实施例中,采集各个虚拟机在运行时的处理器硬件能耗特征的步骤可以包括:
采集各个虚拟机在运行时的CPU能耗特征,例如,可以包括CPU的执行周期和CPU执行完成的指令数中的至少一种;
采集各个虚拟机在运行时的内存能耗特征,例如,可以包括对内存的访问次数、对内存的访问失效次数、对Cache(高速缓冲存储器)的访问次数或对Cache的访问失效次数等。
该实施例可以采集到各虚拟机在运行时的处理器硬件中的CPU、内存和Cache等部件的真实能耗特征,可以为更精确地计算出各个虚拟机的能耗提供准确的数据。
在本发明方法的第四实施例中,采集各个虚拟机在运行时的I/O设备能耗特征的步骤包括:
采集各个虚拟机在运行时的磁盘设备能耗特征;
采集各个虚拟机在运行时的网络设备能耗特征。
具体地,各个虚拟机在运行时的磁盘设备和网络设备能耗特征可以包括磁盘设备的流量信息和网络设备的流量信息。
该实施例可以采集到各虚拟机在运行时的磁盘设备和网络设备的真实流量信息,可以为更精确地计算出各个虚拟机的真实能耗提供可靠的数据。
图2是本发明测量虚拟机能耗的方法的第五实施例的流程示意图。
如图2所示,该实施例可以包括以下步骤:
S202,通过监测硬件性能监视器HPM采集各个虚拟机在运行时的处理器硬件能耗特征;
S204,通过监测I/O设备访问事件采集各个虚拟机在运行时的I/O设备能耗特征;
S206,将采集到的各个虚拟机在运行时的处理器硬件和I/O设备能耗特征映射到对应的虚拟机事件统计信息中;
S208,利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗。
在本发明方法的第六实施例中,可以通过以下步骤测量各个虚拟机的能耗:
步骤一,可以通过监测HPM事件,采集各个虚拟机在CPU和内存等功能部件上的相关事件的发生次数,并将该相关事件的发生次数作为运行时能耗特征,其中,HPM可以在处理器运行时对CPU执行和内存访问相关的一系列性能事件进行监测和计数,例如,CPU的执行周期/完成指令数、Cache/内存的访问/失效次数等,这些能耗特征能够真实地反映出处理器的实际运行情况;
步骤二,在对处理器的HPM事件进行监测的同时,还可以将监测到的事件数值映射到对应的虚拟机事件统计信息中;
假设在一台物理机上配置了三台虚拟机,采集这三台虚拟机的CPU执行周期和内存访问数,映射后的结果如下所示:
VM_ID:VM0(虚拟机ID),HPM0_Val:56000(CPU执行周期),HPM1_Val:3200(内存访问数);
VM_ID:VM1,HPM0_Val:47000,HPM1_Val:1400;
VM_ID:VM2,HPM0_Val:78000,HPM1_Val:3800;
步骤三,可以通过监测I/O设备访问相关的事件,采集虚拟机在运行时的I/O功能部件(例如,磁盘设备和网络设备)的I/O流量作为I/O设备能耗特征;
步骤四,在对I/O设备访问事件进行监测的同时,还可以将监测到的I/O流量信息映射到对应的虚拟机事件统计信息中;
假设在一台物理机上配置了三台虚拟机,采集这三台虚拟机的块设备和网络设备的流量信息,映射后的结果如下所示:
VM_ID:VM0,HPM0_Val:2400(块设备流量),HPM1_Val:700(网络设备流量);
VM_ID:VM1,HPM0_Val:4900,HPM1_Val:12000;
VM_ID:VM2,HPM0_Val:7000,HPM1_Val:800;
步骤五,通过对物理机的实测能耗与其上运行的各个虚拟机在运行时产生的各功能部件(CPU、内存以及I/O设备等)的汇总能耗特征(HPM事件计数、I/O流量信息等)之间存在的线性关系进行分析,动态地建立功能部件级能耗模型,然后根据能耗模型计算虚拟机的能耗,具体地,可以通过以下子步骤实现:(1)根据虚拟机事件统计信息汇总出和各个功能部件(包括CPU、内存和I/O设备)相关的事件统计信息;(2)根据功能部件的事件统计信息和物理机的实测能耗之间存在的线性关系分析并计算出功能部件的能耗模型;(3)根据功能部件的能耗模型计算各个虚拟机的能耗,即,在获得功能部件的能耗模型后,每个虚拟机在各个功能部件上产生的能耗可以根据虚拟机在不同功能部件能耗中的贡献份额计算得到,然后通过汇总就获得了每个虚拟机完整的能耗数值。
图3是本发明测量虚拟机能耗的系统的第一实施例的结构示意图。
如图3所示,该实施例中的系统包括:
处理器硬件事件采集装置11,用于通过监测硬件性能监视器HPM采集各个虚拟机在运行时的处理器硬件能耗特征,其中,HPM可以在处理器运行时对处理器硬件上相关的一系列性能事件进行监测和计数;
虚拟机管理器事件采集装置12,用于通过监测I/O设备访问事件采集各个虚拟机在运行时的I/O设备能耗特征,其中,各个虚拟机在运行时的I/O设备能耗特征可以包括I/O设备的流量信息;
物理机能耗测量装置13,用于测量物理机实际运行时的能耗,例如,可以利用功率测量仪等现有装置,通过将该装置挂接在物理机的供电通路上对物理机的电流和电压等物理量进行实时监测和采集,进而获得相应的实测能耗;
虚拟机能耗计算装置14,分别与处理器硬件事件采集装置11、虚拟机管理器事件采集装置12以及物理机能耗测量装置13相连,用于利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征以及物理机实际运行时的能耗计算各个虚拟机的能耗。
该实施例通过对各个虚拟机在运行时的处理器硬件和I/O设备能耗特征的采集准确地捕获各个虚拟机在运行时的能耗特征,从而可以利用这些能耗特征准确地计算出各个虚拟机的能耗,有效地解决了现有技术中不能准确测量各个虚拟机能耗的问题。
图4是本发明测量虚拟机能耗的系统的第二实施例的结构示意图。
如图4所示,与图3中的实施例相比,该实施例的系统中的处理器硬件事件采集装置21包括:
HPM配置器211,用于在各个虚拟机启动时配置对HPM的控制指令,例如,可以识别和注册在线CPU的体系结构信息以及根据CPU体系结构信息选择相应的HPM配置文件,并按照HPM配置文件中的描述对HPM进行配置以监测配置文件中所需的和处理器硬件(例如,CPU执行和内存访问)相关的HPM事件;
HPM控制器212,用于控制HPM对各个虚拟机在运行时的处理器硬件能耗特征的采集,例如,将HPM配置为监测指定的CPU事件以及控制计数过程的启动和终止等;
HPM读取器213,用于从HPM中读取各个虚拟机在运行时的处理器硬件能耗特征、对HPM的中断进行处理并将读取到的各个虚拟机在运行时的处理器硬件能耗特征映射到对应的虚拟机事件统计信息中。
该实施例可以通过HPM的配置器、控制器和读取器的协调工作来准确地从HPM中读取各个虚拟机的能耗特征,为后续各个虚拟机能耗的计算提供了可靠且真实的数据。
在本发明系统的第三实施例中,与图3中的实施例相比,该实施例的系统中的虚拟机管理器事件采集装置还用于将采集到的各个虚拟机在运行时的I/O设备能耗特征映射到对应的虚拟机事件统计信息中。
图5是本发明测量虚拟机能耗的系统的第四实施例的结构示意图。
如图5所示,与图4中的实施例相比,该实施例的系统中的虚拟机能耗计算装置31包括:
虚拟机事件统计信息采集器311,用于采集映射到对应的虚拟机事件统计信息中的各个虚拟机上的能耗特征;
虚拟机能耗计算器312,与虚拟机事件统计信息采集器311相连,用于利用各个虚拟机在运行时的处理器硬件和I/O设备能耗特征与物理机实际运行时的能耗之间的线性关系动态地建立能耗模型,并利用能耗模型计算各个虚拟机的能耗。
该实施例通过分析物理机的实测能耗和各个虚拟机能耗特征中所包含的各类事件之间的线性关系,动态地调整能耗模型,从而能够更准确地计算出各个虚拟机的实际运行能耗。
在上述实施例中,处理器硬件可以包括CPU、内存和Cache。I/O设备可以包括磁盘设备和网络设备。
各个虚拟机在运行时的CPU能耗特征可以包括CPU的执行周期和完成指令数中的至少一种。
各个虚拟机在运行时的内存能耗特征可以包括虚拟机对内存的访问次数、对内存的访问失效次数、对Cache的访问次数或对Cache的访问失效次数等。
各个虚拟机在运行时的I/O设备能耗特征可以包括I/O设备的流量信息。具体地,可以包括磁盘设备的流量信息和网络设备的流量信息。
图6是本发明测量虚拟机能耗的系统的第五实施例的结构示意图。
如图6所示,该实施例的系统可以包括:
处理器硬件事件采集装置21、虚拟机管理器事件采集装置12、物理机能耗测量装置13和虚拟机能耗计算装置31。
其中,物理机能耗测量装置13可以是现有装置,例如,功率测量仪等,通过将物理机能耗测量装置13挂接在物理机的供电通路上,对物理机的电流和电压等物理量进行实时监测和采集,进而可以获得相应的物理机实测能耗。
处理器硬件事件采集装置21可以包括HPM配置器211、HPM控制器212和HPM读取器213。这三个装置都是在虚拟机管理器中实现的,相应的装置功能和工作流程如下:
(1)HPM配置器211,用于在虚拟机管理器启动时配置对HPM的控制指令,该HPM可以是一套专用的寄存器。该配置器的主要功能包括识别和注册在线CPU的体系结构信息,以及根据CPU体系结构信息选择相应的HPM配置文件并按照HPM配置文件中的描述对HPM进行配置以监测配置文件中所需的和CPU执行和内存访问相关的HPM事件。
具体地,当前主流的CPU大多设定了一类HPM寄存器用于记录程序运行过程中的CPU行为细节的事件,并对这类事件进行计数。HPM监测到的CPU事件的发生次数能够直观地体现程序运行时的硬件执行特征,例如,CPU执行完成的指令数、L1 Cache的失效次数等。HPM寄存器具有控制端口(与HPM配置器和HPM控制器相连)和数据端口(与HPM读取器相连),控制端口用于对HPM寄存器进行控制,例如,将其配置为监测指定的CPU事件以及控制计数过程的启动和终止等;数据端口用于对HPM寄存器的计数值进行读取。对HPM寄存器控制端口和数据端口的操作都有专用指令。
HPM配置器211对CPU的识别可以有多种方法,例如,在Linux操作系统的/proc文件系统中就有文件保存了CPU的厂商、类别、型号等信息。在物理机运行过程中,可以把部分CPU设为离线状态,而CPU的注册过程则是指对当前在线运行的处理机进行识别,并只对它们的HPM寄存器进行操作。
(2)HPM控制器212,用于在虚拟机运行时控制HPM事件的采集过程。其主要功能包括启动/终止HPM中的计数器对相关硬件事件的计数,以及在虚拟机运行时动态地根据HPM配置文件重新配置HPM以改变被监测HPM事件的类型。
(3)HPM读取器213,用于在虚拟机运行时读取HPM寄存器。其主要功能包括采集HPM事件的计数值,处理HPM寄存器的溢出中断,以及将采集所得的HPM事件计数值映射到各个虚拟机上并添加到相应虚拟机的事件统计信息中。
虚拟机管理器事件采集装置12可以是I/O流量事件读取器,可以在虚拟机管理器中实现该装置,其用于在虚拟机运行时记录虚拟机的I/O设备访问事件,采集I/O事件中的流量信息并将采集所得的流量数值映射到各个虚拟机上并添加到相应虚拟机的事件统计信息中。
虚拟机能耗计算装置31可以包括虚拟机事件统计信息采集器311和虚拟机能耗计算器312。
其中,虚拟机事件统计信息采集器311用于从虚拟机管理器中采集出各个虚拟机的事件统计信息(包括CPU执行、内存访问相关的HPM事件的发生次数以及I/O设备的流量信息等)。
虚拟机能耗计算器312用于计算各个虚拟机的能耗,其以虚拟机事件统计信息和物理机的实测能耗为输入,以通过计算得到的各个虚拟机的能耗为输出,具体工作流程如下:
(I)根据虚拟机事件统计信息汇总出和各个功能部件(包括CPU、内存和I/O设备)相关的事件统计信息;
(II)根据功能部件的事件统计信息和物理机的实测能耗之间存在的线性关系分析并计算功能部件的能耗模型,即,在处理器硬件上(例如,CPU和内存)的能耗特征系数以及在I/O设备上的能耗特征系数;
(III)根据功能部件的能耗模型计算各个虚拟机的能耗,即,在获得功能部件的能耗模型后,每个虚拟机在各个功能部件上产生的能耗可以根据虚拟机在不同功能部件能耗中的贡献份额计算得到,然后通过汇总就获得了完整的虚拟机能耗数值。
具体地,可以以三个虚拟机D0、D1、D2为例说明如何计算各个虚拟机的能耗。
因为各个功能部件上的能耗相加就是物理机的能耗,而各个功能部件的能耗又是各个虚拟机造成的,则可以通过下述公式来表示:
a*X+b*Y+c*Z+d=E (1)
其中,a,b,c为各个功能部件的能耗因子,即,能耗模型。
X:CPU HPM事件计数向量;Y:内存HPM事件计数向量;Z:I/O流量计数向量;E:物理机的能耗向量,d:其他能耗。
因此,在有三个虚拟机的情况下可以将式(1)写成:
a*(XD0+XD1+XD2)+b*(YD0+YD1+YD2)+c*(ZD0+ZD1+ZD2)+d=E (2)
其中,XD0表示虚拟机D0产生的CPU HPM计数,以此类推,因此可以得到虚拟机D0的能耗为:a*XD0+b*YD0+c*ZD0+d/3。
该实施例具有以下优点:
(1)综合考虑了虚拟机运行时在系统主要功能部件(CPU、内存、I/O设备)上的能耗特征,实现了对虚拟机能耗行为的全面测量;
(2)通过采集与CPU执行、内存访问相关的处理器硬件事件以及与I/O设备访问相关的虚拟机管理器事件,可以准确地捕捉到各个虚拟机的能耗特征;
(3)通过分析物理机的实测能耗和虚拟机能耗特征中所包含的各类事件之间的线性关系,可以动态地调整能耗模型,从而能够更准确地计算出各个虚拟机的实际运行能耗;
(4)该实施例可以自动化实现,全程无需人工干预。
在本发明系统的第六实施例中,以Xen虚拟机(Domain)为例说明该系统如何测量各个虚拟机的能耗:
(A)Xen虚拟机的处理器硬件事件采集
对HPM的配置、控制和读取可以通过插入相应的内核模块并调用处理器的相关指令实现。以下将详细介绍如何将采集得到HPM事件计数值分派到相应的Domain上。
图7是利用本发明计算Xen虚拟机能耗的示意图。
如图7所示,与传统操作系统对进程的调度过程类似,虚拟机管理器(Hypervisor)在对Xen虚拟机进行调度时,需要调用do_schedule()函数切换物理CPU资源的使用者。当一个虚拟机被换入时,HPM读取器将读取当前物理CPU的HPM寄存器的计数值C1,而当该虚拟机被换出时,HPM读取器将再次读取物理CPU的HPM寄存器的计数值C2,并将C2减去C1的数值作为该虚拟机执行过程中的相关CPU事件的发生次数。因为HPM的位数有限,所以需要有中断处理程序处理HPM的溢出。另外,从物理CPU上读取的HPM数值可以首先映射到虚拟CPU上,然后再映射到虚拟机上,其间的映射过程可以通过下面的数据结构中的相关ID实现,这样就可以将HPM事件计数值分派给相应的Domain了。
struct task_slice{
struct vcpu*task;
s_time_t time;
};
struct vcpu{
int vcpu_id;
int processor;
struct domain*domain;
};
struct domain{
domid_t*domain_id;
};
根据Xen Hypervisor的相关数据结构中的物理CPU、虚拟CPU和Domain之间的映射关系,使得各个Domain在物理功能部件上产生的HPM事件计数值得到了区分,从而保证了数据采集的准确性。
(B)Xen虚拟机的Hypervisor事件采集
图8是Xen虚拟机的Hypervisor事件采集示意图。
如图8所示,该功能需要在虚拟机管理器中实现。在Xen虚拟机中,有一个由虚拟机管理器统一管理的共享内存环。所有来自虚拟机DomainU的I/O请求都被首先发送到共享内存环中,然后由虚拟机管理器发送给相关的I/O硬件(例如,磁盘设备I/O和网络设备I/O)进行处理,而所有从硬件返回的I/O响应也都被虚拟机管理器发送到共享内存环上再由各个DomainU读取。DomainU将读写请求放置到环上,并从环上获得读写响应,每次I/O访问的流量信息也被保存在环上。对于磁盘设备I/O而言,因为读写的数据量都是由DomainU在发出请求时决定的,所以虚拟机管理器只需要关注环上的读写请求中包含的流量信息即可;对于网络设备I/O而言,DomainU发出的写访问的数据量是由自己决定的,而通过读访问获得的数据量则是由发送端决定的,因此虚拟机管理器需要同时对写请求和读响应的流量信息进行监测。共享内存环上的每个元素都记录了请求/响应对应的虚拟机ID,根据这些信息可以识别出属于不同虚拟机的I/O流量。
图9是Xen虚拟机I/O设备访问流量信息和Domain之间的映射关系示意图。
如图9所示,根据Xen Hypervisor的相关数据结构中维护的I/O设备访问的流量信息和Domain之间的映射关系,使得各个Domain在I/O设备上产生的访问流量数值得到了区分,进而保证了数据采集的准确性。
(C)Xen虚拟机的能耗计算
因为CPU、内存和I/O设备上产生的能耗占据了物理机能耗的绝大部分,所以物理机能耗可以表现为CPU能耗、内存能耗、I/O设备能耗以及其它能耗之和。其中,CPU能耗、内存能耗与相关的硬件事件发生次数线性相关,而I/O设备能耗则与I/O设备上的流量大小线性相关。因此,物理机能耗与CPU执行、内存访问相关的HPM事件发生次数以及I/O设备上的流量信息存在着线性相关关系。
通过对上述的线性相关性进行分析,可以获得各个HPM事件和I/O流量事件在物理机能耗中的权重,进而构建出各个功能部件的能耗模型,例如可以采用多元线性回归分析的方法获得能耗模型,具体实现如下所示:
上述公式(1)示出了采用多元线性回归分析方法分析物理机能耗和功能部件(CPU、内存、I/O)能耗之间的关系。具体可以通过下述步骤实现:
(a)进行多次采样,每次都会记录下一段时间内的物理机能耗,以及此间在各个功能部件上发生的事件计数值(将此间各个虚拟机采集到的相关数值求和)。如果采样10次的话,那么物理机能耗向量就有10个分量,相应的各个功能部件相关的计数向量中也都有10个分量,即获得了一个由10个方程组成的方程组;
(b)利用多元线性回归方法解方程组,可以获得a、b、c、d的值,即,各个功能部件的能耗因子,也即,功能部件的能耗模型;
(c)因为各个功能部件的计数值是由各个虚拟机的运行导致的,而且各个虚拟机导致的计数值是已知的,因此利用在(b)中得到的功能部件的能耗因子可以得到各个虚拟机在该功能部件上造成的能耗,然后再将各部件的相关能耗相加,就得到了每个虚拟机的整体能耗。
该方法不需要使用预先确定的能耗模型,而是根据系统的实际运行情况做动态的调整,从而能够更准确地计算出各个虚拟机的实际运行能耗。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (12)
1.一种测量虚拟机能耗的方法,其特征在于,所述方法包括:
通过监测硬件性能监视器HPM采集各个虚拟机在运行时的处理器硬件能耗特征;
通过监测I/O设备访问事件采集所述各个虚拟机在运行时的I/O设备能耗特征;
利用所述各个虚拟机在运行时的处理器硬件和I/O设备能耗特征与物理机实际运行时的能耗之间的线性关系动态地建立能耗模型,所述线性关系为:各虚拟机在处理器硬件上的能耗+各虚拟机在I/O设备上的能耗=物理机实际运行时的能耗;
利用所述能耗模型计算所述各个虚拟机的能耗。
2.根据权利要求1所述的方法,其特征在于,所述采集各个虚拟机在运行时的处理器硬件能耗特征的步骤包括:
采集所述各个虚拟机在运行时的CPU能耗特征;
采集所述各个虚拟机在运行时的内存能耗特征。
3.根据权利要求1所述的方法,其特征在于,所述采集各个虚拟机在运行时的I/O设备能耗特征的步骤包括:
采集所述各个虚拟机在运行时的磁盘设备能耗特征;
采集所述各个虚拟机在运行时的网络设备能耗特征。
4.根据权利要求1所述的方法,其特征在于,在所述计算各个虚拟机的能耗之前,所述方法还包括:
将采集到的各个虚拟机在运行时的处理器硬件和I/O设备能耗特征映射到对应的虚拟机事件统计信息中。
5.根据权利要求2所述的方法,其特征在于,
所述各个虚拟机在运行时的CPU能耗特征包括CPU的执行周期和完成指令数中的至少一种;
所述各个虚拟机在运行时的内存能耗特征包括对内存的访问次数。
6.根据权利要求1所述的方法,其特征在于,所述各个虚拟机在运行时的I/O设备能耗特征包括I/O设备的流量信息。
7.一种测量虚拟机能耗的系统,其特征在于,所述系统包括:
处理器硬件事件采集装置,用于通过监测硬件性能监视器HPM采集各个虚拟机在运行时的处理器硬件能耗特征;
虚拟机管理器事件采集装置,用于通过监测I/O设备访问事件采集所述各个虚拟机在运行时的I/O设备能耗特征;
物理机能耗测量装置,用于测量物理机实际运行时的能耗;
虚拟机能耗计算装置,分别与所述处理器硬件事件采集装置、所述虚拟机管理器事件采集装置以及所述物理机能耗测量装置相连,用于利用所述各个虚拟机在运行时的处理器硬件和I/O设备能耗特征与所述物理机实际运行时的能耗之间的线性关系动态地建立能耗模型,利用所述能耗模型计算所述各个虚拟机的能耗,所述线性关系为:各虚拟机在处理器硬件上的能耗+各虚拟机在I/O设备上的能耗=物理机实际运行时的能耗。
8.根据权利要求7所述的系统,其特征在于,所述处理器硬件事件采集装置包括:
HPM配置器,用于在所述各个虚拟机启动时配置对HPM的控制指令;
HPM控制器,用于控制HPM对所述各个虚拟机在运行时的处理器硬件能耗特征的采集;
HPM读取器,用于从HPM中读取所述各个虚拟机在运行时的处理器硬件能耗特征、对HPM的中断进行处理并将读取到的各个虚拟机在运行时的处理器硬件能耗特征映射到对应的虚拟机事件统计信息中。
9.根据权利要求8所述的系统,其特征在于,所述虚拟机管理器事件采集装置还用于将采集到的各个虚拟机在运行时的I/O设备能耗特征映射到对应的虚拟机事件统计信息中。
10.根据权利要求9所述的系统,其特征在于,所述虚拟机能耗计算装置包括:
虚拟机事件统计信息采集器,用于采集映射到对应的虚拟机事件统计信息中的所述各个虚拟机上的能耗特征;
虚拟机能耗计算器,与所述虚拟机事件统计信息采集器相连,用于利用所述各个虚拟机在运行时的处理器硬件和I/O设备能耗特征与所述物理机实际运行时的能耗之间的线性关系动态地建立能耗模型,并利用所述能耗模型计算所述各个虚拟机的能耗。
11.根据权利要求7至10中任一项所述的系统,其特征在于,所述处理器硬件包括CPU和内存,所述I/O设备包括磁盘设备和网络设备。
12.根据权利要求11所述的系统,其特征在于,
所述各个虚拟机在运行时的CPU能耗特征包括CPU的执行周期和完成指令数中的至少一种;
所述各个虚拟机在运行时的内存能耗特征包括虚拟机对内存的访问次数;
所述各个虚拟机在运行时的I/O设备能耗特征包括I/O设备的流量信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010236796.2A CN101907917B (zh) | 2010-07-21 | 2010-07-21 | 一种测量虚拟机能耗的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010236796.2A CN101907917B (zh) | 2010-07-21 | 2010-07-21 | 一种测量虚拟机能耗的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101907917A CN101907917A (zh) | 2010-12-08 |
CN101907917B true CN101907917B (zh) | 2013-08-14 |
Family
ID=43263394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010236796.2A Active CN101907917B (zh) | 2010-07-21 | 2010-07-21 | 一种测量虚拟机能耗的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101907917B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102759979B (zh) | 2011-04-29 | 2016-03-30 | 国际商业机器公司 | 一种虚拟机能耗估计方法及装置 |
CN102609314A (zh) * | 2012-01-18 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟机量化管理方法和系统 |
CN102854968B (zh) * | 2012-05-04 | 2015-04-08 | 北京邮电大学 | 一种虚拟机实时能耗计量方法 |
CN102929773B (zh) * | 2012-11-07 | 2016-06-08 | 曙光云计算技术有限公司 | 信息采集方法和装置 |
CN103036721A (zh) * | 2012-12-13 | 2013-04-10 | 曙光云计算技术有限公司 | 云计算环境下的流量统计方法 |
CN103870297B (zh) * | 2012-12-14 | 2016-12-21 | 北京华胜天成科技股份有限公司 | 云计算环境中虚拟机的性能数据采集系统和方法 |
CN103095719A (zh) * | 2013-01-30 | 2013-05-08 | 浪潮集团有限公司 | 一种云计算设备能耗管理调度监测网络协议 |
CN103914119B (zh) * | 2014-04-17 | 2017-01-18 | 江苏省电力公司盐城供电公司 | 一种虚拟机能耗电力计量方法及系统 |
CN104506590B (zh) * | 2014-12-11 | 2017-11-07 | 国云科技股份有限公司 | 一种基于虚拟集群的应用效能评估方法 |
WO2016106747A1 (zh) * | 2014-12-31 | 2016-07-07 | 华为技术有限公司 | 虚拟机能耗确定方法、物理机和网络系统 |
CN105975385A (zh) * | 2016-04-28 | 2016-09-28 | 浪潮(北京)电子信息产业有限公司 | 一种基于模糊神经网络的虚拟机能耗预测方法及系统 |
CN108228445B (zh) * | 2016-12-15 | 2021-05-25 | 中国电信股份有限公司 | 虚拟机能耗的测试方法以及装置 |
CN110865871A (zh) * | 2019-11-14 | 2020-03-06 | 北京京航计算通讯研究所 | 基于资源合理化应用的虚拟化集群资源调度方法 |
CN115576856B (zh) * | 2022-12-08 | 2023-04-11 | 浪潮通信信息系统有限公司 | 能耗评估方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719081A (zh) * | 2009-12-01 | 2010-06-02 | 北京大学 | 一种虚拟机调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501124B2 (en) * | 2008-05-22 | 2016-11-22 | Microsoft Technology Licensing, Llc | Virtual machine placement based on power calculations |
US8099615B2 (en) * | 2008-06-30 | 2012-01-17 | Oracle America, Inc. | Method and system for power management in a virtual machine environment without disrupting network connectivity |
-
2010
- 2010-07-21 CN CN201010236796.2A patent/CN101907917B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719081A (zh) * | 2009-12-01 | 2010-06-02 | 北京大学 | 一种虚拟机调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101907917A (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101907917B (zh) | 一种测量虚拟机能耗的方法和系统 | |
CN109412829B (zh) | 一种资源配置的预测方法及设备 | |
Möbius et al. | Power consumption estimation models for processors, virtual machines, and servers | |
Eismann et al. | Sizeless: Predicting the optimal size of serverless functions | |
CN102759979B (zh) | 一种虚拟机能耗估计方法及装置 | |
Kim et al. | Energy-credit scheduler: an energy-aware virtual machine scheduler for cloud systems | |
CN104113585B (zh) | 用于产生指示负载平衡状态的硬件级中断的方法和设备 | |
Noureddine et al. | A review of energy measurement approaches | |
US9304886B2 (en) | Associating energy consumption with a virtual machine | |
US11748230B2 (en) | Exponential decay real-time capacity planning | |
WO2014074168A1 (en) | Memory usage configuration based on observations | |
WO2014074162A1 (en) | Optimized settings in a configuration database with boundaries | |
Kraft et al. | Performance models of storage contention in cloud environments | |
Guzek et al. | A holistic model of the performance and the energy efficiency of hypervisors in a high‐performance computing environment | |
Patros et al. | Investigating resource interference and scaling on multitenant PaaS clouds | |
von Kistowski et al. | Run-time prediction of power consumption for component deployments | |
Ai et al. | On elasticity measurement in cloud computing | |
Tang et al. | Zero-cost, fine-grained power monitoring of datacenters using non-intrusive power disaggregation | |
Tang et al. | NIPD: Non-intrusive power disaggregation in legacy datacenters | |
Schulz et al. | Owl: next generation system monitoring | |
Piga et al. | Empirical and analytical approaches for web server power modeling | |
Wiesner et al. | Software‐in‐the‐loop simulation for developing and testing carbon‐aware applications | |
CN108228445B (zh) | 虚拟机能耗的测试方法以及装置 | |
Llopis et al. | Analyzing the energy consumption of the storage data path | |
Cupertino et al. | Energy consumption library |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |