掌桥专利:专业的专利平台
掌桥专利
首页

一种CPU压力测试方法及装置

文献发布时间:2023-06-19 09:54:18


一种CPU压力测试方法及装置

技术领域

本发明涉及设备稳定性测试技术领域,尤其涉及一种CPU压力测试方法及装置。

背景技术

现有的CPU(central processing unit,中央处理器)压力测试方法是指CPU满载测试,具体而言,指运行压力测试程序将CPU利用率跑满(100%),并长时间持续运行,在测试期间检查设备是否出现蓝屏、崩溃重启等问题,现有的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内核数量的第一差值确定为所述测试用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内核的数量的第二差值,从已运行所述压力测试程序的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内核的信息,得到选取出的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的第一测试结果的步骤。

可选的,所述测试模块,还用于:

若接收到所述管理板发出的测试结束指令,则结束运行所述压力测试程序;

所述确定模块,还用于获取从开始至结束运行所述压力测试程序的过程中所述CPU的第二测试结果,并将所述第二测试结果反馈至所述管理板。

本发明提供的CPU压力测试装置的技术效果可以参见上述第一方面或第一方面的各个实现方式的技术效果,此处不再赘述。

第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的CPU压力测试方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一项所述的CPU压力测试方法中的步骤。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例提供的CPU压力测试方法的流程图;

图2为本发明实施例提供的CPU压力测试方法中预设条件的判断流程图;

图3为本发明实施例提供的具体实施例的流程图;

图4为本发明实施例提供的CPU压力测试装置的结构示意图;

图5为本发明实施例提供的电子设备的结构示意图。

具体实施方式

为了解决现有CPU压力测试技术方案无法适用机架式设备并行测试场景的问题,本发明提出了一种压力测试方法及装置。

以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

本发明所涉及的技术术语中:

压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。CPU压力测试即针对CPU的压力测试。

CPU(central processing unit,中央处理器)核心是CPU中间的核心芯片,由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据等,是数字处理核心。多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。

机架式设备,具体指机架式通信设备,如机架式交换机、机架式路由器等,由于设备内有多个处理构成多各分布式节点,采用的是分布式体系架构。

板间通信:多个CPU之间的通讯,是分布式软件系统的基本支撑模块。

如图1所示,本发明中的CPU压力测试方法应用于机架式设备包括的至少两个板卡中,该至少两个板卡中包括一个管理板,除管理板外,还可以包括网板、接口板等,这三类板卡由于在机架式设备中的功能分类不同,各自在空载环境(空配置空业务)下CPU的使用情况可能不同,但相同类型的板卡在同一系统中的差别较小,因此,可以获取每种类型的板卡在空载状态下的CPU利用率,属于同一种类型的多个板卡在空载状态下的CPU利用率则认为相同;

针对该至少两个板卡中的任意一个板卡,每个板卡包括一个CPU,每个CPU包括至少两个CPU内核;该方法包括:

S101、接收管理板发出的测试开始指令后,根据自身板卡的CPU包括的CPU内核的总数量和空载状态CPU利用率确定测试用CPU内核数量;

S102、从总数量的CPU内核中选取测试用CPU内核数量的CPU内核;

S103、在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果;

S104、综合得到的运行结果确定自身板卡的CPU的第一测试结果。

其中,该至少两个板卡同时通过步骤S101~S104进行CPU压力测试。

在机架式设备中,通过预留出一部分CPU内核用于系统运行,保证了系统最基本的运行要求,维护了系统的稳定性,再通过使另一部分CPU内核运行压力测试程序的方式来构造CPU高负载运行的环境,避免了满载测试的弊端,并且,可以实现同时对多个板卡进行测试的目的,提高了测试效率,可有效降低设备的生产和研发成本。

具体的,步骤S101中,根据自身板卡的CPU包括的CPU内核的总数量和空载状态CPU利用率确定测试用CPU内核数量,具体包括:

将总数量与空载状态CPU利用率的乘积向上取整得到的数值确定为系统用CPU内核数量;

将总数量与系统用CPU内核数量的第一差值确定为测试用CPU内核数量。

例如,针对某一个板卡,该板卡CPU内核的总数量N为8,在空载状态下该板卡的CPU利用率R

可选的,步骤S103中,在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果,具体包括:

确定在设定测试时长内选取出的CPU内核是否均正常运行压力测试程序;

若确定在设定测试时长内所选取出的CPU内核无法均正常运行压力测试程序,则记录无法正常运行压力测试程序的CPU内核的信息,得到选取出的CPU内核的运行结果。

具体的,上述“压力测试程序”具体指PTU加压线程。

在设定测试时长内,通过查看选取出的CPU内核是否可以正常运行压力测试程序,可以筛选有故障的CPU内核,提升了产品的质量保证。

例如,若有未跑起PTU加压线程的CPU内核,则可能存在单核故障,记录该异常信息。

进一步的,若确定在设定测试时长内所选取出的CPU内核均正常运行压力测试程序,则获取自身板卡的CPU利用率的当前值;

确定该当前值是否满足预设条件;

若确定该当前值不满足预设条件,则记录该当前值,得到选取出的CPU内核的运行结果。

如此,针对任意一个板卡,在选取出的用作测试的多个CPU内核均运行正常的基础上,获取CPU利用率的当前值,通过CPU利用率的当前值这一指标是否满足预设条件,可以进一步对板卡进行测试,提高了测试结果的可靠性。

具体的,预设条件包括第一预设条件、第二预设条件,其中:

第一预设条件为:自身板卡的CPU利用率的当前值R

第二预设条件为:在第一预设条件基础上,自身板卡的CPU利用率的当前值R

针对任意一个板卡,若该板卡所选取出的用作测试的多个CPU内核均可以正常运行压力测试程序,则可以采用如图2所示的步骤S201~S206来继续对该板卡进行测试,具体为:

S201、在设定测试时长内,确定自身板卡的CPU利用率的当前值R

S202、若R

S203、若R

S204,若R

S205、若R

简而言之,在设定测试时长内,自身板卡的CPU利用率的当前R

进一步的,若确定该当前值满足预设条件,则以设定采样间隔继续采集CPU利用率的数值;

基于采集的各个数值确定CPU利用率的变化曲线;

根据变化曲线计算所述CPU在设定测试时长内的平均测试压力,得到选取出的CPU内核的运行结果。

在设定测试时长内,板卡的CPU利用率的变化趋势能够反映出这段时间内测试压力的大小,据此可以进一步考察系统所预设的测试压力是否合适。

值得说明的是,本发明实施例提供的CPU压力测试方法中,均为在固定程度的CPU压力下,通过预留出一部分CPU内核用于系统运行,保证了系统最基本的运行要求,再通过对另一部分CPU内核叠加加压线程的方式来构造CPU高负载运行的环境,并在高负载运行环境中,监测系统的运行状态,从而解决了机架式设备测试环境中CPU高压力与分布式架构之间的矛盾问题,填补了CPU压力测试在机架式设备场景中的系统考虑的缺失。

可选的,在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果之后,还包括以下步骤:

S301、确定总数量的CPU内核中的每个CPU内核是否均运行压力测试程序;

S302、若确定总数量的CPU内核中的至少一个CPU内核未运行压力测试程序,则确定该至少一个CPU内核的数量是否小于测试用CPU内核数量;

S302a、若确定该至少一个CPU内核的数量不小于测试用CPU内核数量,则从该至少一个CPU内核中选取测试用CPU内核数量的CPU内核,执行在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果的步骤;

S302b、若确定该至少一个CPU内核的数量小于测试用CPU内核数量,则计算测试用CPU内核数量与该至少一个CPU内核的数量的第二差值,从已运行压力测试程序的CPU内核中选取第二差值的CPU内核,将第二差值的CPU内核与该至少一个CPU内核作为选取出的CPU内核,执行在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果的步骤;

S303、若确定总数量的CPU内核中的每个CPU内核均运行压力测试程序,则执行综合得到的运行结果确定自身板卡的CPU的第一测试结果的步骤。

由于在每一个设定测试时长内,均会得到采用所选取的CPU内核运行压力测试程序后的一组运行结果,则,在确定总数量的CPU内核中的每个CPU内核均运行压力测试程序后,可以综合这多组运行结果得到对应板卡的第一测试结果。

现以一个具体的实施例详细说明上述测试过程,具体包括:

在第一个设定测试时长内,采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果;

在第一个设定测试时长后,由于还有未运行压力测试程序的CPU内核,且未运行压力测试程序的CPU内核的数量不小于测试用CPU内核数量,则直接从未运行压力测试程序的CPU内核中选取测试用CPU内核数量的CPU内核,然后在第二个设定测试时长内,用重新选取出的CPU内核运行压力测试程序,并得到选取出的CPU内核的运行结果;

在第i-1个设定测试时长后,仍有未运行压力测试程序的CPU内核,且未运行压力测试程序的CPU内核的数量不小于测试用CPU内核数量,则直接从未运行压力测试程序的CPU内核中选取测试用CPU内核数量的CPU内核,然后在第i个设定测试时长内,用重新选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果;

在第j-1个设定测试时长后,仍有未运行压力测试程序的CPU内核,且未运行压力测试程序的CPU内核的数量小于测试用CPU内核数量,则计算测试用CPU内核数量与剩余的未运行压力测试程序的CPU内核数量的第二差值,从已运行压力测试程序的CPU内核中选取第二差值的CPU内核,将第二差值的CPU内核与当前所剩余的未运行压力测试程序的CPU内核作为选取出的CPU内核,在第j个设定测试时长内,用重新选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果;

综合在上述j个设定测试时长内得到的j组运行结果确定自身板卡的CPU的第一测试结果。

其中,3≤i

如此,在经过j次选取,并经过j个设定测试时长后,每个CPU内核均至少运行了一次压力测试程序。

每一个设定测试时长内,选取出的用来运行压力测试程序的多个CPU内核不完全相同,但数量相同,每次所选取出的运行压力测试程序的CPU内核的并集即为对应板卡所有的CPU内核的集合。

进一步的,在每一个设定测试时长内,均查看选取出的CPU内核是否能够正常运行压力测试程序,如此,经过j个设定测试时长后,由于每个CPU内核均获得了至少一次运行压力测试程序的机会,则可以掌握板卡所包含的每个CPU内核的运行情况,即,在测试过程中可以遍历所有的CPU内核,以实现对单核故障的检测拦截,完善了CPU测试的完整性,提升了产品的质量保证。

另外,在第j个设定测试时长结束后,若还未收到管理板发出的测试结束指令,则可以从第一个设定测试时长开始,重复上述测试步骤进行下一轮测试。

在具体实施时,可以对每个CPU内核进行编号,以便于通过编号区分出已运行压力测试程序的CPU内核和未运行压力测试程序的CPU内核。结合上述测试原理则可以采用以下具体实施方式进行测试:

设某一设定的板卡的CPU内核的总数量为N,确定出的用作测试的CPU内核的数量为M,对这N个CPU内核进行编号,分别为1、2、3……N,则:

第一个设定测试时长内,选取编号为1~M的CPU内核运行压力测试程序;

第二个设定测试时长内,若2M≤N,说明未运行压力测试程序的CPU内核的数量不小于测试用CPU内核数量,则选取编号为(M+1)~2M的CPU内核运行压力测试程序;若2M>N,说明未运行压力测试程序的CPU内核的数量小于测试用CPU内核数量,则选取编号为(N-M+1)~N的CPU内核运行压力测试程序设定的时长;

第i个设定测试时长内,若i*M≤N,说明未运行压力测试程序的CPU内核的数量不小于测试用CPU内核数量,则选取编号为((i-1)M+1)~i*M的CPU内核运行压力测试程序;若(i*M+1)>N,说明未运行压力测试程序的CPU内核的数量小于测试用CPU内核数量,则选取编号为(N-M+1)~N的CPU内核运行压力测试程序。

当然,还可以采用其他的方法进行多次测试以达到相同的目的,例如:

第一个设定测试时长内,选取编号为1~M的CPU内核运行压力测试程序;

第二个设定测试时长内,选取编号为2~M+1的CPU内核运行压力测试程序;

第三个设定测试时长内,选取编号为3~M+2的CPU内核运行压力测试程序;

依次类推,直到在第(N-M+1)个设定测试时长内,选取编号为(N-M+1)~N的CPU内核运行压力测试程序。

具体可以根据需要选择适当的方法进行测试,在此不一一列举。

步骤S104中、在综合得到的运行结果确定自身板卡的CPU的第一测试结果后,各个板卡可以将第一测试结果反馈至管理板,以供管理板根据第一测试结果对相应的板卡的进行性能分析。

其中,针对仅包括一个设定测试时长的情况,则在达到设定测试时长后,测试结束,并将获得的第一测试结果反馈至管理板。

针对如步骤S301~S303,包括多个设定测试时长的情况,则在经过最后一个设定测试时长后,测试结束,并将综合多组运行结果得到的第一测试结果反馈至管理板。

可选的,若接收到管理板发出的测试结束指令,则结束运行压力测试程序,测试结束;

获取从开始至结束运行压力测试程序的过程中自身的板卡的CPU的第二测试结果;

将第二测试结果反馈至管理板。

若将从第一个设定测试时长开始到第j个设定测试时长结束作为一个完整的测试周期,则,当接收到管理板发出的测试结束指令时,板卡可能还未完成一个测试周期,也可能已经完成了多个测试周期,板卡将获取从开始至结束运行压力测试程序的过程中自身的板卡的CPU的第二测试结果,并将第二测试结果反馈至管理板。

优选的,可以设定管理板从发出测试开始的指令到测试结束指令之间的时间间隔,保证每个板卡至少完成了一个测试周期。

如图3所示,根据本发明实施例提供的CPU压力测试方法,针对具有N个CPU内核的板卡,具体可以按照以下步骤进行测试:

S401、接收管理板发出的测试开始指令;

S402、根据CPU内核的总数量和在空载状态下的CPU利用率,确定用作测试的CPU内核的数量M;

S403、选取出编号为1~M/((N-M+1)~N)的CPU内核用作测试,并在设定测试时长内,使选取出的CPU内核运行压力测试程序;

具体的,在第一个设定测试时长内,选取编号为1~M的CPU内核运行压力测试程序;

S404、查看选取出的CPU内核是否均正常运行压力测试程序;

S405、若确定所选取出的CPU内核无法均正常运行压力测试程序,则记录无法正常运行压力测试程序的CPU内核的信息,并跳至步骤S410,得到选取出的CPU内核的运行结果;

具体的,该板卡中,若编号为1~M的CPU内核中至少有一个CPU内核无法正常运行压力测试程序,则记录无法正常运行压力测试程序的CPU内核的信息,并跳至步骤S410,得到编号为1~M的CPU内核的运行结果;若编号为1~M的CPU内核均正常运行压力测试程序,则跳至步骤S406,继续测试;

S406、若确定所选取出的CPU内核均正常运行压力测试程序,则获取该板卡的CPU利用率的当前值;

S407、确定该板卡的CPU利用率的当前值是否满足预设条件;

S408、若该板卡的CPU利用率的当前值不满足预设条件,则记录该板卡CPU利用率的当前值,并跳至步骤S410,得到选取出的CPU内核的运行结果;

S409、若该板卡的CPU利用率的当前值满足预设条件,则以设定采样间隔继续采集该板卡的CPU利用率的数值,基于采集的各个数值确定CPU利用率的变化曲线;

根据变化曲线计算该板卡在设定测试时长内的平均测试压力,并跳至步骤S410,得到选取出的CPU内核的运行结果;

S410、得到选取出的CPU内核的运行结果;

S411、到达设定测试时长后,综合得到的运行结果确定自身板卡的CPU的第一测试结果;

第一个设定测试时长后,选取另一组CPU内核用作测试,并在第二个设定测试时长内,使选取出的CPU内核运行压力测试程序,其他步骤请参考步骤S404~S411;

具体的,在第二个设定测试时长内,选取出编号为(N-M+1)~N的CPU内核运行压力测试程序;

S412,将在每个设定测试时长内获得的第一测试结果反馈至管理板。

若第一个设定测试时长和第二个设定测试时长形成一个测试周期,则一个测试周期结束,还可以进入下一个测试周期,直到接收到管理板发出的测试结束指令,则停止测试;获取从开始至结束运行压力测试程序的过程中自身的板卡的CPU的第二测试结果,并将第二测试结果反馈至管理板。

从测试开始至测试结束的整个测试过程中,管理板监控各板卡的电压、温度等信息,在测试结束后,管理板查看测试过程中记录的异常信息,并合入测试报告中。

基于同一技术构思,本发明实施例还提供了一种CPU压力测试装置,应用于机架式设备包括的至少两个板卡中,其中,每个板卡包括一个CPU,每个CPU包括至少两个CPU内核,所述至少两个板卡中包括一个管理板,如图4所示,该装置包括:

接收模块11,用于接收管理板发出的测试开始指令;

计算模块12,用于根据自身板卡的CPU包括的CPU内核的总数量和空载状态CPU利用率确定测试用CPU内核数量;

测试模块13,用于从总数量的CPU内核中选取测试用CPU内核数量的CPU内核,并在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果;

确定模块14,用于综合得到的运行结果确定自身板卡的CPU的第一测试结果。

可选的,计算模块11,具体用于:

将总数量与空载状态CPU利用率的乘积向上取整得到的数值确定为系统用CPU内核数量;

将总数量与系统用CPU内核数量的第一差值确定为测试用CPU内核数量。

可选的,测试模块13,用于在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果,具体用于:

确定在设定测试时长内选取出的CPU内核是否均正常运行压力测试程序;

若确定在设定测试时长内选取出的CPU内核无法均正常运行压力测试程序,则记录无法正常运行压力测试程序的CPU内核的信息,得到选取出的CPU内核的运行结果。

进一步的,测试模块13,还用于:

若确定在设定测试时长内选取出的CPU内核均正常运行压力测试程序,则获取自身板卡的CPU利用率的当前值;

确定当前值是否满足预设条件;

若确定当前值不满足预设条件,则记录当前值,得到选取出的CPU内核的运行结果。

进一步的,测试模块13,还用于:

若确定当前值满足预设条件,则以设定采样间隔继续采集CPU利用率的数值;

基于采集的各个数值确定CPU利用率的变化曲线;

根据变化曲线计算自身板卡在设定测试时长内的平均测试压力,得到选取出的CPU内核的运行结果。

可选的,测试模块13,还用于:

在设定测试时长内采用选取出的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内核均运行压力测试程序,则确定模块14执行综合得到的运行结果确定自身板卡的CPU的第一测试结果的步骤。

可选的,测试模块13,还用于:

若接收到管理板发出的测试结束指令,则结束运行压力测试程序;

确定模块14,还用于获取从开始至结束运行压力测试程序的过程中CPU的第二测试结果,并将第二测试结果反馈至管理板。

基于同一技术构思,本发明实施例还提供了一种电子设备500,参照图5所示,电子设备500用于实施上述方法实施例记载的CPU压力测试方法,该实施例的电子设备500可以包括:存储器501、处理器502以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如测试程序。所述处理器执行所述计算机程序时实现上述各个压力测试方法实施例中的步骤,例如图1所示的步骤S103。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如测试模块13。

本发明实施例中不限定上述存储器501、处理器502之间的具体连接介质。本申请实施例在图5中以存储器501、处理器502之间通过总线503连接,总线503在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器501可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器501也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器501是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器501可以是上述存储器的组合。

处理器502,用于实现如图1所示的一种CPU压力测试方法,包括:

所述处理器502,用于调用所述存储器501中存储的计算机程序执行如图1中所示的步骤S101、接收管理板发出的测试开始指令后,根据自身板卡的CPU包括的CPU内核的总数量和空载状态CPU利用率确定测试用CPU内核数量,步骤S102、从总数量的CPU内核中选取测试用CPU内核数量的CPU内核,步骤S103、在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果,和步骤S104、综合得到的运行结果确定自身板卡的CPU的第一测试结果。

本发明实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。

在一些可能的实施方式中,本发明提供的CPU压力测试方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的CPU压力测试方法中的步骤,例如,所述电子设备可以执行如图1中所示的步骤S101、接收管理板发出的测试开始指令后,根据自身板卡的CPU包括的CPU内核的总数量和空载状态CPU利用率确定测试用CPU内核数量,步骤S102、从总数量的CPU内核中选取测试用CPU内核数量的CPU内核,步骤S103、在设定测试时长内采用选取出的CPU内核运行压力测试程序,得到选取出的CPU内核的运行结果,和步骤S104、综合得到的运行结果确定自身板卡的CPU的第一测试结果。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

本发明的实施方式的用于进行CPU压力测试的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种CPU压力测试方法及装置
  • 模拟板卡与应用占满CPU资源的压力测试方法及装置
技术分类

06120112346491