本发明涉及性能测试技术领域,特别涉及一种系统CPU分析方法和装置。
背景技术:
相对软件的功能测试,软件的性能测试具有更高的专业性和复杂度,性能测试的主要手段是通过模拟真实业务的压力对被测系统进行加压,研究被测系统在不同压力情况下的表现,找出潜在的性能瓶颈。该过程的实现需要经过从测试场景的设计到测试脚本的编写,再到测试环境的配置和测试结果的分析,才能最终实现被测系统的调试与优化。
性能测试具有功能测试所不具备的专业性,性能测试的难度体现在性能测试用例的设计、测试结果的分析等过程,尤其是分析测试结果,分析难度很大,分析过程要求测试人员能够综合应用操作系统、网络、数据库服务器、应用服务器、WEB服务器等软硬件多方面的专业知识,在大量的测试结果数据中进行分析和推理,最终达到验证待测系统能否满足性能需求以及业务需求。即一个性能测试项目的质量如何,跟测试人员的素质、能力和经验是密不可分的。
目前,已经有不少的工具能够完成性能测试,综合利用这些测试工具也能测出比较全面的性能指标数据,但是对于性能测试的测试结果数据的分析,目前还是依靠比较专业的性能测试人员并结合性能测试经验才能够完成,因此在对同样的测试结果进行分析时,可能由于测试人员的不同得出的结论差别较大,可能会将性能优化引向不同的方向。
性能测试结果数据常见的分析指标包括内存,CPU,吞吐量,并发用户,响应时间等,其中CPU问题是最常见的性能问题,作为被测系统的主要硬件,系统CPU的使用状态直接体现了被测系统的运行状态以及可能存在的问题。通过CPU性能数据以及其它各项硬件参数,测试人员能推断出系统的性能问 题。而如何准确推断待测系统的CPU问题已经成为性能测试领域中亟待解决的问题
技术实现要素:
鉴于上述问题,本发明提供一种系统CPU分析方法和装置,以降低性能分析过程中CPU问题分析与定位的难度,提高性能测试的分析效率和性能测试的质量。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供了一种系统CPU分析方法,该方法包括:
确定待测系统需要测试的相关CPU参数,以及每种CPU参数的分析规则;
建立所述相关CPU参数的分析顺序;
对所述待测系统在各类场景下的CPU性能测试数据,按照所述相关CPU参数的分析顺序和每种CPU参数的分析规则进行CPU分析,并生成CPU分析报告。
另一方面,本发明还提供了一种系统CPU分析装置,该系统CPU分析装置包括:
CPU参数确定单元,用于确定待测系统需要测试的相关CPU参数,以及每种CPU参数的分析规则;
分析顺序建立单元,用于建立所述相关CPU参数的分析顺序;
CPU分析单元,用于对所述待测系统在各类场景下的CPU性能测试数据,按照所述相关CPU参数的分析顺序和每种CPU参数的分析规则进行CPU分析,并生成CPU分析报告。
本发明实施例的有益效果是:本发明建立待测系统需要测试的每种相关CPU参数的分析规则和相关CPU参数的分析顺序,利用相关CPU参数的分析顺序和每种CPU参数的分析规则对待测系统在各类场景下的CPU性能测试数据进行CPU分析,能够有效地降低CPU性能分析过程中CPU问题分析与定位的难度,从而降低了性能测试的门槛,使更多的测试人员能够胜任性能测试工作;而且能够显著地降低测试人员的工作量,提升性能测试的分析 效率和性能测试的质量,缩短性能测试周期,降低性能测试成本。
附图说明
图1为本发明实施例一提供的系统CPU分析方法的流程图;
图2为本发明实施例二提供的系统CPU分析方法的流程图;
图3为本发明实施例三提供的系统CPU分析装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一:
图1为本实施例提供的系统CPU分析方法的流程图,如图1所示,图1中的方法包括:
S110,确定待测系统需要测试的相关CPU参数,以及每种CPU参数的分析规则。
S120,建立相关CPU参数的分析顺序。
S130,对待测系统在各类场景下的CPU性能测试数据,按照相关CPU参数的分析顺序和每种CPU参数的分析规则进行CPU分析,并生成CPU分析报告。
本实施例通过建立的相关CPU参数的分析顺序和每种相关CPU参数的分析规则对待测系统的CPU性能测试数据进行CPU分析,并生成相应的CPU分析报告,能够准确分析待测系统CPU的性能情况,降低性能测试的测试难度,提高性能测试分析的效率和性能测试的质量。
本实施例的方法能够有效地指导系统性能的评估、系统缺陷的定位与分析。
在本实施例的一个优选方案中,步骤S110中待测系统需要测试的相关CPU参数包括:执行非闲置线程时间的百分比system%Total Processor Time、处理队列的线程数system%Processor Queue Length、用户模式下操作占用的时间百分比processor%User Time和接收处理硬件中断的时间百分比processor%Interrupt Time;其中system%Total Processor Time和 system%Processor Queue Length体现了系统CPU的整体使用率,而processor%User Time和processor%Interrupt Time则体现了在执行业务过程时所涉及的CPU,单独每个CPU的使用率。
则针对上述各CPU参数的分析规则分为如下:
system%Total Processor Time的分析规则为:判断待测系统的CPU参数system%Total Processor Time值是否满足第一阈值,在system%Total Processor Time值不满足第一阈值时,确定待测系统存在CPU瓶颈;通常第一阈值设定为90%,在system%Total Processor Time值超过90%时,确定待测系统存在CPU瓶颈。
需要说明的是,由于待测系统可能包括多个CPU,例如通常每种应用服务器都对应一个CPU,当利用system%Total Processor Time的分析规则确定待测系统存在CPU瓶颈时,该CPU瓶颈应理解为待测系统的所有CPU从整体看上存在瓶颈问题,即通过该分析规则无法确定是哪一个CPU存在性能瓶颈。同样地,当利用system%Processor Queue Length的分析规则确定待测系统存在CPU拥塞时,该CPU拥塞为待测系统所有CPU从整体上看存在拥塞问题。
进一步需要说明的是,本实施例中涉及的CPU瓶颈应理解为各种CPU问题,显然后续的CPU拥塞是一种具体的CPU瓶颈。
system%Processor Queue Length的分析规则为:判断待测系统的CPU参数system%Processor Queue Length值是否大于设定值,在system%Processor Queue Length值大于设定值时,确定待测系统存在CPU拥塞;该设定值为待测系统CPU个数与1的和,即该设定值为待测系统CPU数+1。
processor%User Time的分析规则为:判断待测系统执行业务时所涉及的每个CPU的CPU参数processor%User Time值是否满足第二阈值,在processor%User Time值不满足第二阈值时,确定待测系统执行所述业务的相应的CPU存在CPU瓶颈;通常第二阈值设定为80%,当待测系统在执行业务过程中涉及应用服务器时,若应用服务器CPU的CPU参数processor%User Time值大于80%,确定待测系统的应用服务器CPU存在瓶颈,可以通过优化应用服务器或应用算法等方法来降低该CPU参数值;当待测系统在执行业 务过程中涉及数据库服务器时,若数据库服务器CPU的CPU参数processor%User Time值大于80%,确定待测系统的数据库服务器CPU存在瓶颈,可以通过对数据库服务器进行优化来降低该CPU参数值。
system%Total Processor Time和processor%Interrupt Time的分析规则为:判断待测系统的CPU参数system%Total Processor Time是否满足第一阈值,待测系统执行业务时所涉及的每个CPU的CPU参数processor%Interrupt Time值是否满足第三阈值,在system%Total Processor Time不满足第一阈值,processor%Interrupt Time值亦不满足第三阈值,且待测系统的网卡和磁盘均不存在瓶颈时,确定待测系统执行业务的相应的CPU存在瓶颈;通常第三阈值设定为15%,在system%Total Processor Time值超过90%,且processor%Interrupt Time大于15%时,还需进一步判断待测系统的网卡和磁盘是否存在瓶颈,若待测系统的网卡和磁盘均不存在瓶颈,则确定待测系统加载相应业务涉及的CPU存在CPU瓶颈。其中,可采用现有方法判断待测系统的网卡和磁盘是否存在瓶颈,例如可以通过判断CPU参数消耗在网络处理上的时间processor%DPC Time,该值越低越好,若processor%DPC Time值大于50%,则确定待测系统存的网卡存在瓶颈,否则确定待测系统的网卡不存在瓶颈。
则基于上述各CPU参数的分析规则,步骤S120中的建立相关CPU参数的分析顺序具体为:
根据system%Total Processor Time的分析规则、system%Processor Queue Length的分析规则、processor%User Time的分析规则、system%Total Processor Time和processor%Interrupt Time的分析规则依次分析CPU参数system%Total Processor Time、system%Processor Queue Length、processor%User Time和processor%Interrupt Time。
或者,根据system%Total Processor Time的分析规则、system%Total Processor Time和processor%Interrupt Time的分析规则、processor%User Time的分析规则以及system%Processor Queue Length的分析规则依次分析CPU参数system%Total Processor Time、processor%Interrupt Time、processor%User Time和system%Processor Queue Length。
进而步骤S130中生成CPU分析报告具体为:
在确定待测系统存在CPU瓶颈时,将不满足第一阈值的CPU参数system%Total Processor Time值记录在CPU分析报告中;
在确定待测系统存在CPU拥塞时,将大于设定值的CPU参数system%ProcessorQueue Length值记录在CPU分析报告中;
在确定待测系统执行业务所涉及的相应的CPU存在CPU瓶颈时,将不满足第二阈值的CPU参数processor%User Time值记录在CPU分析报告中,以及将不满足第一阈值的CPU参数system%Total Processor Time值,且不满足第三阈值的CPU参数processor%Interrupt Time值均记录在CPU分析报告中。
即在根据该分析顺序对待测系统在各类场景下的CPU性能测试数据进行CPU分析时,首先分析系统CPU参数system%Total Processor Time,再分析系统CPU参数system%Processor Queue Length;或者,首先分析系统CPU参数system%Total Processor Time,再分析需要与系统CPU参数system%Total Processor Time配合的单个CPU的CPU参数processor%Interrupt Time。
实施例二:
本实施例采用与实施例一相同的技术方案对待测系统进行CPU分析。
如图2所示,图2为本实施例提供的系统CPU分析方法的流程图,该系统CPU分析方法的具体流程如下:
S210,确定待测系统的CPU分析模型,即确定待测系统需要测试的相关CPU参数,以及每种CPU参数的分析规则,建立相关CPU参数的分析顺序。
本步骤中确定的相关CPU参数包括system%Total Processor Time、processor%User Time和processor%Interrupt Time、system%Processor Queue Length。
其中,第一阈值为90%,即当待测系统的CPU参数system%Total Processor Time值超过90%时,确定待测系统存在CPU瓶颈。
第二阈值为80%,即当待测系统执行业务时所涉及的每个CPU的CPU参数processor%User Time值超过80%时,确定待测系统执行业务时所涉及 的相应的CPU存在CPU瓶颈。
第三阈值为15%,即当待测系统执行业务时所涉及的每个CPU的CPU参数system%Total Processor Time值超过90%,且CPU参数processor%Interrupt Time大于15%,且待测系统的网卡和磁盘均不存在瓶颈时,确定待测系统执行业务时所涉及的相应的CPU存在CPU瓶颈。
S220,获取待测系统在各类场景下的CPU性能测试数据。
在本步骤中可以通过下述方法获取待测系统在各类场景下的CPU性能测试数据:
根据用户的性能测试需求搭建真实反映所述待测系统实际运行环境的测试环境;
选取CPU测试所需的测试工具;
确定所述待测系统在各类场景下的测试环境参数和压力测试的测试压力参数。
根据待测系统在各类场景下的测试环境参数和压力测试的测试压力参数,利用选取的测试工具对待测系统进行压力测试,收集各类场景下的CPU性能测试数据。
S231,读取待测系统的system%Total Processor Time值。
S232,判断待测系统存在CPU瓶颈,即判断system%Total Processor Time值是否超过90%,若超过则执行步骤S233,若未超过则执行步骤S241。
S233,确定待测系统存在CPU瓶颈,并将大于90%的CPU参数system%Total Processor Time值记录在CPU分析报告中,执行步骤S241。
S241,读取待测系统的system%Processor Queue Length值。
S242,判断待测系统是否存在CPU拥塞,即判断system%Processor Queue Length值是否大于设定值,若大于则执行步骤S243,否则执行步骤S251。
S243,确定待测系统存在CPU拥塞,将大于设定值的CPU参数system%Processor Queue Length值记录在CPU分析报告中,执行步骤S251。
S251,读取待测系统在执行业务过程涉及的各CPU的processor%User Time值。
S252,判断读取的每个CPU的processor%User Time值是否大于80%, 若存在某个CPU的processor%User Time值大于80%则执行步骤S253,若读取的所有CPU的processor%User Time值均不大于80%则执行步骤S261。
S253,确定待测系统执行业务时涉及的相应的CPU存在CPU瓶颈,并将大于80%的CPU参数processor%User Time值记录在CPU分析报告中,执行步骤S261。
S261,读取待测系统执行业务时所涉及的各CPU的processor%Interrupt Time值。
S262,判断system%Total Processor Time值是否大于90%,且其对应的processor%Interrupt Time值是否大于15%,若system%Total Processor Time值是大于90%,且其对应的processor%Interrupt Time值亦大于15%,则执行步骤S263,否则执行步骤S270。
S263,判断待测系统的网卡和磁盘是否存在瓶颈,若均不存在瓶颈则执行步骤S264,若网卡和/或磁盘存在瓶颈,则执行步骤S265。
S264,确定待测系统执行业务时所涉及的相应的CPU存在CPU瓶颈,将大于90%的CPU参数system%Total Processor Time值,且大于15%的CPU参数processor%Interrupt Time值均记录在CPU分析报告中,执行步骤S270。
S265,将网卡和/或磁盘存在瓶颈记录在CPU分析报告中,执行步骤S270。
S270,输出生成的CPU分析报告,结束该次CPU分析。
需要说明的是,本实施例仅以先执行system%Total Processor Time的分析规则,再执行system%Processor Queue Length的分析规则的分析顺序来详细说明应用本发明的方法对系统CPU进行分析的过程。显然,也可以使用实施例一中先执行system%Total Processor Time的分析规则,再执行system%Total Processor Time和processor%Interrupt Time的分析规则的分析顺序来详细说明应用本发明的方法对系统CPU进行分析的过程。
在本实施例的一个具体实现中,预先建立用于分析系统多种分析指标(如系统的CPU)的分析工具,可以通过建立用于配置各种模型的框架,使该框架能够按照其配置的模型对数据进行分析处理,利用软件编程技术将该框架工具化,获得所需的分析工具。
在获得所需的分析工具后,将本实施例的CPU分析模型配置到该分析工具中,利用配置有CPU分析模型的工具对各场景下的CPU性能测试数据进行分析处理,分析处理完成后输出CPU分析报告。
本实施例的方法不但能够提高性能数据的分析效率、降低性能测试人员的工作量、缩短性能测试周期、降低性能测试中CPU分析的难度,提升定位CPU性能瓶颈的准确度;还能够降低性能测试的专业门槛,使更多的测试人员能够胜任性能测试工作,从而降低性能测试成本。
实施例三:
基于与实施例一相同的技术构思,本实施例提供了一种系统CPU分析装置。
图3为本实施例提供的系统CPU分析装置的结构示意图,如图3所示,图3中的系统CPU分析装置包括:CPU参数确定单元31、分析顺序建立单元32和CPU分析单元33。
CPU参数确定单元31,用于确定待测系统需要测试的相关CPU参数,以及每种CPU参数的分析规则。
分析顺序建立单元32,用于建立相关CPU参数的分析顺序。
CPU分析单元33,用于对待测系统在各类场景下的CPU性能测试数据,按照相关CPU参数的分析顺序和每种CPU参数的分析规则进行CPU分析,并生成CPU分析报告。
在本实施例的优选方案中,CPU参数确定单元31确定待测系统需要测试的相关CPU参数包括:执行非闲置线程时间的百分比system%Total Processor Time、处理队列的线程数system%Processor Queue Length、用户模式下操作占用的时间百分比processor%User Time和接收处理硬件中断的时间百分比processor%Interrupt Time。
其中system%Total Processor Time的分析规则为:判断待测系统的CPU参数system%Total Processor Time值是否满足第一阈值,在system%Total Processor Time值不满足第一阈值时,确定待测系统存在CPU瓶颈;
system%Processor Queue Length的分析规则为:判断待测系统的CPU参数system%Processor Queue Length值是否大于设定值,在所述 system%Processor Queue Length大于设定值时,确定待测系统存在CPU拥塞;该设定值为所述待测系统CPU个数与1的和;
processor%User Time的分析规则为:判断待测系统执行业务时所涉及的每个CPU的CPU参数processor%User Time值是否满足第二阈值,在processor%User Time值不满足第二阈值时,确定待测系统执行业务时涉及的相应的CPU存在CPU瓶颈;
system%Total Processor Time和processor%Interrupt Time的分析规则为:判断待测系统的CPU参数system%Total Processor Time值是否满足第一阈值,且待测系统执行业务时所涉及的每个CPU的CPU参数processor%Interrupt Time值是否满足第三阈值,在system%Total Processor Time值不满足第一阈值,processor%Interrupt Time值亦不满足第三阈值,且待测系统的网卡和磁盘均不存在瓶颈时,确定待测系统执行业务时涉及的相应的CPU存在CPU瓶颈。
分析顺序建立单元32,具体用于根据system%Total Processor Time的分析规则、system%Processor Queue Length的分析规则、processor%User Time的分析规则、system%Total Processor Time和processor%Interrupt Time的分析规则依次分析CPU参数system%Total Processor Time、system%Processor Queue Length、processor%User Time和processor%Interrupt Time。
或者,
分析顺序建立单元32,具体用于根据system%Total Processor Time的分析规则、system%Total Processor Time和processor%Interrupt Time的分析规则、processor%User Time的分析规则以及system%Processor Queue Length的分析规则依次分析CPU参数system%Total Processor Time、processor%Interrupt Time、processor%User Time和system%Processor Queue Length。
则CPU分析单元33包括CPU分析报告生成模块;
该CPU分析报告生成模块,用于在确定所述待测系统存在CPU瓶颈时,将不满足第一阈值的CPU参数system%Total Processor Time值记录在CPU分析报告中;
在确定所述待测系统存在CPU拥塞时,将大于设定值的CPU参数 system%Processor Queue Length值记录在CPU分析报告中;
在确定所述待测系统执行业务时涉及的相应的CPU存在CPU瓶颈时,将不满足第二阈值的CPU参数processor%User Time值记录在CPU分析报告中,以及将不满足第一阈值的CPU参数system%Total Processor Time值,且不满足第三阈值的CPU参数processor%Interrupt Time值均记录在CPU分析报告中。
综上所述,本发明公开了一种系统CPU分析方法和装置,建立待测系统需要测试的每种相关CPU参数的分析规则和相关CPU参数的分析顺序,利用相关CPU参数的分析顺序和每种CPU参数的分析规则对待测系统在各类场景下的CPU性能测试数据进行CPU分析,能够有效地降低CPU性能分析过程中CPU问题分析与定位的难度,从而降低了性能测试的门槛,使更多的测试人员能够胜任性能测试工作;而且能够显著地降低测试人员的工作量,提升性能测试的分析效率和性能测试的质量,缩短性能测试周期,降低性能测试成本。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。