[发明专利]基于硬件计数器虚拟化的多虚拟机性能分析方法有效
申请号: | 201110004407.8 | 申请日: | 2011-01-11 |
公开(公告)号: | CN102073535A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 金海;袁平鹏;谢夏;蒋海鸥 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F11/36 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 硬件 计数器 虚拟 虚拟机 性能 分析 方法 | ||
技术领域
本发明属于计算系统虚拟化性能分析领域,具体涉及一个基于硬件计数器虚拟化的多虚拟机性能分析方法,它能够让多个虚拟机独立地进行性能分析。
背景技术
虚拟化技术允许单一物理计算机同时运行多个虚拟机,每一虚拟机上运行自己的操作系统,使得应用程序可以在相互独立的空间内运行而互不影响。因此,虚拟化技术显著提高了软硬件资源的利用率,提高了管理效率,从而节约大量的成本。现在,虚拟化技术得到了许多公司的广泛关注。据权威研究机构预计,2012年全球将有超过一半的工作负载被虚拟化。
虚拟化技术的广泛应用引发了对虚拟化环境下性能分析工具的需求。如不同虚拟机里的用户(如开发人员等)需了解运行在该虚拟机的程序的性能问题,以便优化程序性能及运行环境配置。这都需要对程序运行状态进行采样。一种性能分析方法是基于硬件计数器技术。它需要在程序执行过程中,对相应的CPU事件进行统计来分析程序性能。
但硬件计数器是一种专用的寄存器,每个CPU上的硬件计数器数量有限。因此,对于基于硬件计数器的性能分析工具,一次能同时分析的CPU事件有限,而且现有的性能分析工具不能在不同的虚拟机里同时分析不同的事件。因此,不能满足虚拟化环境下多用户在不同虚拟机同时使用的需要。基于以上问题,本发明提出了一种基于硬件计数器虚拟化技术的多虚拟机性能分析方法,以解决在不同虚拟机里同时分析不同CPU事件的问题。
发明内容
本发明的目的是提供一种基于硬件计数器虚拟化的多虚拟机性能分析方法,该方法为虚拟环境下的程序性能分析提供很大的便利,并且能较好地保证性能分析的精确度。
本发明提供的一种基于硬件计数器虚拟化的多虚拟机性能分析方法,其特征在于,该方法包括下述步骤:
第1步在特权虚拟机和各客户虚拟机里均运行一个后台守护进程,用于监听用户启动、停止性能分析请求;
第2步设置待性能分析的虚拟机要分析的CPU事件信息,包括CPU事件类型、采样频率、单元掩码、是否分析内核层和是否分析用户层;
第3步判断单个待性能分析的虚拟机分析的CPU事件数量是否超过硬件计数器的数量,如果是,则提示用户分析的事件过多,回到第2步;否则进入第4步;
第4步待性能分析的虚拟机向特权虚拟机发出一个启动信号,将CPU事件信息写入Xen的一个结构体中;
第5步判断所有待性能分析的虚拟机分析的CPU事件总数是否超过硬件计数器的数量,如果是,通过硬件计数器虚拟化技术来分时复用硬件计数器,进入第6步;否则,不需要对硬件计数器进行虚拟化,转入第7步;
第6步内核层对硬件计数器进行虚拟化,以实现硬件计数器的分时复用;当硬件计数器统计的CPU事件发生次数达到采样频率时,硬件计数器产生一个中断,内核层开始采样,记录当前程序计数器的值,保存到对应的缓冲区,并将程序计数器的值转化为有用信息;
第7步重复第6步,直至接收到停止性能分析的信号;
第8步已启动性能分析的虚拟机停止性能分析,并向特权虚拟机发出一个停止信号,从而将Xen中存储该虚拟机CPU事件信息的结构体内容清除;
第9步各虚拟机接收到缓冲区的数据后,对这些数据进行分析处理,从而为用户提供性能信息;
第10步用户对得到的性能信息进行展现。
目前应用在主流的虚拟化管理软件里的性能分析工具不能让多用户在不同的虚拟机下同时进行分析,而这一想法的实现将为虚拟化环境下的程序性能分析提供很大的便利。同时,分时复用的硬件计数器虚拟化实现方式,能较好地保证分析的精确度。本发明的工作原理是:当多个虚拟机同时进行性能分析并需要占用硬件计数器时,若多个虚拟机分析的CPU事件总数超过硬件计数器的数量时,会对硬件计数器进行虚拟化以满足要求,否则不对其进行虚拟化。在Xen虚拟机管理器层次通过一个采样机制来获取采样信息(当硬件计数器的计数达到CPU事件的采样频率时,记录当前程序计数器的值),并将这些信息分发到与各个虚拟机对应的缓冲区,最后再由虚拟机用户层程序进行分析处理,从而得到相应的分析结果及详细的性能信息。
本发明主要有三个关键问题:一是多个虚拟机之间后台监听和消息传递机制的实现;二是如何实现硬件计数器的虚拟化;三是如何降低其开销对性能分析精度的影响。具体而言,本发明具有以下技术特点:
(1)本发明采用后台守护进程监听各个虚拟机启动或停止性能分析的请求,使用Xenstore作为多个虚拟机之间的消息传递机制;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110004407.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双冲程紧凑型压电直线电机
- 下一篇:一种安装操作系统的方法、装置及系统