发明名称 基于硬件计数器虚拟化的多虚拟机性能分析方法
摘要 本发明公开了一种基于硬件计数器虚拟化的多虚拟机性能分析方法。当多个虚拟机同时进行性能分析并需要占用硬件计数器时,若多个虚拟机分析的CPU事件总数超过硬件计数器的数量时,会对硬件计数器进行虚拟化以满足要求,否则不对其进行虚拟化。在Xen虚拟机管理器层次通过一个采样机制来获取采样信息,并将这些信息分发到与各个虚拟机对应的缓冲区,再由虚拟机用户层程序进行分析处理,从而得到相应的分析结果及详细的性能信息。本发明采用后台守护进程监听各个虚拟机启动或停止性能分析的请求,使用Xenstore作为各虚拟机之间的消息传递机制,采用分时复用技术来实现硬件计数器的虚拟化,为虚拟环境下的程序性能分析提供了便利,并且较好地保证了分析的精确度。
申请公布号 CN102073535A 申请公布日期 2011.05.25
申请号 CN201110004407.8 申请日期 2011.01.11
申请人 华中科技大学 发明人 金海;袁平鹏;谢夏;蒋海鸥
分类号 G06F9/455(2006.01)I;G06F11/36(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 曹葆青
主权项 一种基于硬件计数器虚拟化的多虚拟机性能分析方法,其特征在于,该方法包括下述步骤:第1步在特权虚拟机和各客户虚拟机里均运行一个后台守护进程,用于监听用户启动、停止性能分析请求;第2步设置待性能分析的虚拟机要分析的CPU事件信息,包括CPU事件类型、采样频率、单元掩码、是否分析内核层和是否分析用户层;第3步判断单个待性能分析的虚拟机分析的CPU事件数量是否超过硬件计数器的数量,如果是,则提示用户分析的事件过多,回到第2步;否则进入第4步;第4步待性能分析的虚拟机向特权虚拟机发出一个启动信号,将CPU事件信息写入Xen的一个结构体中;第5步判断所有待性能分析的虚拟机分析的CPU事件总数是否超过硬件计数器的数量,如果是,通过硬件计数器虚拟化技术来分时复用硬件计数器,进入第6步;否则,不需要对硬件计数器进行虚拟化,转入第7步;第6步内核层对硬件计数器进行虚拟化,以实现硬件计数器的分时复用;当硬件计数器统计的CPU事件发生次数达到采样频率时,硬件计数器产生一个中断,内核层开始采样,记录当前程序计数器的值,保存到对应的缓冲区,并将程序计数器的值转化为有用信息;第7步重复第6步,直至接收到停止性能分析的信号;第8步已启动性能分析的虚拟机停止性能分析,并向特权虚拟机发出一个停止信号,从而将Xen中存储该虚拟机CPU事件信息的结构体内容清除;第9步各虚拟机接收到缓冲区的数据后,对这些数据进行分析处理,从而为用户提供性能信息;第10步用户对得到的性能信息进行展现。
地址 430074 湖北省武汉市洪山区珞喻路1037号