论文部分内容阅读
虚拟化技术的广泛应用引发了对虚拟化环境下性能分析工具的需求。如不同虚拟机里的用户需了解运行在该虚拟机的程序的性能问题,以便优化程序性能及运行环境配置。这都需要对程序的性能进行分析,一种性能分析方法是基于硬件计数器技术。它需要在程序执行过程中,对相应的CPU事件进行统计来分析程序性能。由于硬件计数器是一种专用的寄存器,每个CPU上的硬件计数器数量有限。因此,对于基于硬件计数器的性能分析工具,一次能同时分析的CPU事件有限。如目前Xen虚拟环境下的Xenoprof工具,它能让多个虚拟机同时分析相同的CPU事件,但不能在不同的虚拟机里同时分析不同的事件。因此,不能满足虚拟环境下多用户在不同虚拟机同时使用的需要。基于以上提出的问题,可以使用一种基于硬件计数器虚拟化技术的多虚拟机性能评测方法,从而能让不同的虚拟机同时分析不同的CPU事件,并且各个虚拟机之间互不影响。对硬件计数器虚拟化来实现各个虚拟机对硬件计数器的分时复用,从而能让多个虚拟机同时独立地评测不同的事件;为了降低开销对性能分析精度的影响,将对硬件计数器的读写操作放入VMM(虚拟机管理器)的时间片。同时,在Xen VMM层次通过采样机制来获取CPU事件的采样信息,并将这些信息分发到与各个虚拟机对应的缓冲区,最后再交给虚拟机用户层的分析工具进行分析处理,从而得到相应的分析结果及详细的性能信息。这样,多个虚拟机里的用户就能同时评测不同的CPU事件,并感觉不到其它用户的存在,从而为虚拟环境下的程序分析提供较大的便利。从测试结果可以看出,该系统在功能上能较好地满足需求,能让多个虚拟机同时独立、互不影响地评测不同的CPU事件;同时,在性能上也取得了较好的效果,将该系统的测试结果同Xenoprof在同等条件下的测试结果对比,两者得到的性能数据基本相当。