专利名称:一种基于硬件计数器获取性能数据实现动态优化服务器性能的方法
技术领域:
本发明涉及一种计算机应用技术,具体的说就是一种通过硬件计数器来抓取应 用软件运行时系统的性能数据,并根据系统性能数据进行分析,消除造成系统平 台性能瓶颈,从而达到动态优化服务器平台的方案。
背景技术:
当前,衡量一个服务器性能高低的一个重要指标在于在目标服务器上运行的应 用软件的性能表现。高性能不仅意味着问题求解时间的减少和开销的节约,还使 某些对时间紧迫的任务变得可能。因此,应用程序实际性能的提高是人们非常关 心的问题,大规模科学计算程序更是需要针对目标平台进行高度的性能优化。现 代高性能微处理器广泛采用多流出、深度流水、乱序执行、自动动态前瞻等技术, 再加上多级存储层次的使用,大大提高了性能。但是程序实际获得性能与机器峰 值性能之间却相差很远,简单的说,就是高配置的机器在实际的业务运行时未必 能表现出高的性能。
现有的优化方案中,基本上都是进行静态的优化分析和模型模拟方法,其中 静态分析方法过度的依赖于系统性能函数获取性能数据进行分析,而系统性能函 数过多的依赖于很多变量(系统结构、数组大小、数值算法等),其准确性值得 推敲,而模型模拟方法它的执行速度比实际应用速度慢很多,而且也难以在编译 时应用,另外由于对计算机系统难于完全模拟的困难,其准确性更难以保证。基 于以上这些原因,我们提出了一种基于硬件计数器的动态服务器性能优化方案,
它的组成模块主要是开发环境,Intel编译器,Intel Vtune工具组成。
发明内容
本发明的目的是提供一种基于硬件计数器获取性能数据,进行优化服务器平 台的方法。
本发明的目的是按以下方式实现的,首先通过应用软件的运行建立一个测试 基准,然后根据硬件计数器收集的性能数据,从微架构级进行分析造成应用软件 性能低下的原因,然后采用intel编译器,进行微架构级的优化,当完成转移微 架构级性能后,再进行系统级性能优化,系统级性能优化完成后,再在相同条件 下重新运行应用软件并与以前的基准进行比较确保性能提升,直到服务器性能表 现满足用户需求为止。
系统包括一级缓存命中率,二级缓存命屮率,二级缓存传输到一级缓存繁忙程度,充分利用处理器多流出、深度流水、乱序执行、自动动态前瞻的技术进行 编译器优化,来转移微架构级热点;然后通过Trace收集器,利用Trace收集器 中的分析器分析Trace文件,确定系统级热点原因,通过调试工具进行分析进行 代码的修改,修改完成后重新编译生成运行质量高的可执行文件;具体动态优化 步骤如下
1) 创建一个benchmark:作为性能调整的目标,调整以后,性能还不如以前, 则表明所做的调整是不正确的;
2) 收集性能分析数据Vtune提供了多种数据收集器,采用硬件计数器进行
收集;
3) 进行数据分析,查找性能问题,利用收集的数据进行深入分析,查找系统 和应用代码的热点区,即,系统或者应用代码中最消耗时间的部分,Vtune性能 分析工具提供了各种不同的视图,以方便对收集数据进行分析,包括system—wide
视图,函数视图,通过这些视图,识别关键模块和函数,进而查看源代码或相关 的视4) 定位应用问题或者系统问题是应用问题需要进行代码的重'与,并再次测 试看性能是否有提高,是系统级的问题,则考虑更换硬件提高代码性能;
5) 是否定位到问题同前面创建的benchmark进行比较,性能有提高并且满 足用户的需求,就表明优化成功,性能仍然不能满足要求,则要考虑收集的其他 数据,以进行更深入的分析;
6) 分析性能是否满足要求分析数据,确认应用程序的性能提高最大化,循 环进行多次分析,直到移出所有瓶颈为止。
本发明的优异效果是使用硬件计数器进行数据的收集,极大地增强了 profiling数据的质量与可靠性,扩展了可以独立或者相关联测量的事件集合,速 度快,系统开销很小; 一般能进行全系统范围的profile,并能够对不同粒度的程 序单元进行profiling。基于硬件计数器的profiling是实现服务器性能动态优化 的基础。例如,cache优化经常要求程序数据访问的详细的时间信息,传统的获取 这种信息的技术非常昂贵,在动态优化系统中难以使用,而基于硬件计数器的 profiling开销很小且数据准确,能满足动态优化系统的要求。
基于硬件计数器获取性能数据实现动态优化服务器性能的技术方案,该发明 选择了静态优化分析速度快,在应用软件编译时便于调整参数的优点,同时又抛 弃了静态分析过于依赖性能函数获取性能数据准确性差的特点,而采取了一种基 于硬件计数器获取性能数据的动态优化技术方案。即适合于应用软件开发的前期, 迅速找到系统性能瓶颈,使系统性能瓶颈消除来业务平台运行的萌芽当中的场合, 又适合于系统平台的后期维护当中,查找造成系统瓶颈的原因,进行有针对性服务器硬件平台的升级,从而使用户的硬件投资得到最大化的利益回报。
图1是基于硬件计数器动态优化服务器性能的方案其实现原理图; 图2是动态优化intel平台服务器性能方法的优化步骤图。
具体实施例方式
本发明的基于硬件计数器动态优化服务器性能的方案其实现原理图如图1所
示
具体描述如下,首先根据硬件计数器收集的微架构级的信息,主要包括一级缓 存命中率,二级缓存命中率,二级缓存传输到一级缓存繁忙程度等等,充分利用 处理器多流出、深度流水、乱序执行、Q动动态前瞻等技术进行编译器优化,来
转移微架构级热点;然后通过Trace收集器,利用Trace分析器分析Trace文件, 确定系统级热点原因,通过调试工具进行分析进行代码的修改,修改完成后重新 编译生成运行质量高的可执行文件。
动态优化intel平台服务器性能方法的优化步骤如下图2所示
(1) 、创建一个benchmark,作为性能调整的H标。如果进行调整以后,性能 还不如以前,则表明所做的调整是不正确的。
(2) 、收集性能分析数据。Vtime提供了多种数据收集器,我们采用硬件计数 器进行收集。
(3) 、进行数据分析,查找性能问题。利用收集的数据进行深入分析,査找 系统和应用代码的热点区,即,系统或者应用代码中最消耗时间的部分。Vtune性 能分析工具提供了各种不同的视图,以方便对收集数据进行分析。比如, system—wide视图,函数视图等。通过这些视图,我们可以识别关键模块和函数, 进而查看源代码或相关的视图。
(4) 、定位应用问题或者系统问题。如果是应用问题需要进行代码的重写, 并再次测试看性能是否有提高。如果是系统级的问题,则可以考虑更换硬件,这 样很可能会对代码性能有提高。
(5) 、是否定位到问题。同前面创建的benchmark进行比较,如果性能有提 高并且满足用户的需求,就表明优化成功。不过,如果性能仍然不能满足要求, 则要考虑收集的其他数据,以进行更深入的分析。
(6) 、分析性能是否满足要求。分析数据,确认应用程序的性能提高最大化。 循环进行多次分析,直到移出所有瓶颈为止。
权利要求
1、一种基于硬件计数器获取性能数据实现动态优化服务器性能的方法,其特征在于,首先通过应用软件的运行建立一个测试基准,然后根据硬件计数器收集的性能数据,从微架构级进行分析造成应用软件性能低下的原因,然后采用intel编译器,进行微架构级的优化,当完成转移微架构级性能后,再进行系统级性能优化,系统级性能优化完成后,再在相同条件下重新运行应用软件并与以前的基准进行比较确保性能提升,直到服务器性能表现满足用户需求为止,系统包括一级缓存命中率,二级缓存命中率,二级缓存传输到一级缓存繁忙程度,充分利用处理器多流出、深度流水、乱序执行、自动动态前瞻的技术进行编译器优化,来转移微架构级热点;然后通过Trace收集器,利用Trace收集器中的分析器分析Trace文件,确定系统级热点原因,通过调试工具进行分析进行代码的修改,修改完成后重新编译生成运行质量高的可执行文件;具体动态优化步骤如下1)创建一个benchmark作为性能调整的目标,调整以后,性能还不如以前,则表明所做的调整是不正确的;2)收集性能分析数据Vtune提供了多种数据收集器,采用硬件计数器进行收集;3)进行数据分析,查找性能问题,利用收集的数据进行深入分析,查找系统和应用代码的热点区,即,系统或者应用代码中最消耗时间的部分,Vtune性能分析工具提供了各种不同的视图,以方便对收集数据进行分析,包括system_wide视图,函数视图,通过这些视图,识别关键模块和函数,进而查看源代码或相关的视图;4)定位应用问题或者系统问题是应用问题需要进行代码的重写,并再次测试看性能是否有提高,是系统级的问题,则考虑更换硬件提高代码性能;5)是否定位到问题同前面创建的benchmark进行比较,性能有提高并且满足用户的需求,就表明优化成功,性能仍然不能满足要求,则要考虑收集的其他数据,以进行更深入的分析;6)分析性能是否满足要求分析数据,确认应用程序的性能提高最大化,循环进行多次分析,直到移出所有瓶颈为止。
全文摘要
本发明提供一种基于硬件计数器获取性能数据实现动态优化服务器性能的方法,该方法是首先通过应用软件的运行建立一个测试基准,然后根据硬件计数器收集的性能数据,从微架构级进行分析造成应用软件性能低下的原因,然后采用intel编译器,进行微架构级的优化,当完成转移微架构级性能后,再进行系统级性能优化,系统级性能优化完成后,再在相同条件下重新运行应用软件并与以前的基准进行比较确保性能提升,直到服务器性能表现满足用户需求为止,通过应用软件的运行,抓取微架构级、系统级性能数据,迅速定位应用软件的热点,通过分析造成热点的原因,消除热点瓶颈,从而达到优化Intel服务器平台目的。
文档编号G06F11/36GK101604287SQ200910017060
公开日2009年12月16日 申请日期2009年7月14日 优先权日2009年7月14日
发明者鑫 乔, 王友升 申请人:浪潮电子信息产业股份有限公司