一种基于HPL工具的无人值守压力测试的方法转让专利

申请号 : CN201410228645.0

文献号 : CN103984612B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏仁娟

申请人 : 浪潮电子信息产业股份有限公司

摘要 :

本发明提供一种基于HPL工具的无人值守压力测试的方法,本方法借用SHELL脚本编写实现HPL的自动化安装并循环执行,大大简化了压力测试的操作流程,特别是对于高密度服务器,轻松实现了对大量节点的无人值守压力测试。本方法在研发阶段、测试阶段及生产阶段的应用,模拟用户真正的大负载使用,实现了稳定性测试的自动化、便捷化。另外,本方法对于不熟悉linux而又需要在linux平台下测试产品稳定性的技术人员有着实际而深刻的意义。

权利要求 :

1.一种基于HPL工具的无人值守压力测试的方法,其特征在于包括以下内容:

1)利用shell脚本程序对MPI编译器和BLAS计算库的自动化安装,并对系统环境、HPL工具参数进行自动配置;

2)根据设定的循环次数自动运行压力程序并重定向输出到文本中,通过执行该shell脚本程序,输入期望linpack执行的循环次数,准备长时间压力测试;

3)shell脚本程序在读到循环次数后,开始自动配置系统环境,关闭SElinux和屏保影响长时间压力测试的系统功能;

4)shell脚本程序自动安装mpich,并自动配置BLAS安装文件中对应的编译器路径,而无需手动更改,从而实现BLAS计算库的自动化安装;

5)安装mpich、BLAS后,shell脚本程序根据当前系统的资源,CPU的核心数,线程数,内存空间大小对HPL的测试矩阵参数进行自动配置,HPL测试工具安装完成;

6)压力测试,shell脚本程序根据此前输入的循环次数执行xhpl程序开始压力测试,直至shell脚本程序判断循环次数已按指定值完成,在所有编译、安装、执行的过程中,除了执行窗口会有输出显示外,shell脚本程序中的重定向设置会将所有过程记录到指定文件中,以便后续查看分析;

具体步骤如下:

(1)读取手动输入的循环次数值

通过命令终端运行该自动化测试脚本,终端人工输入期望linpack的循环次数后,脚本程序会读取该次数值为后面的循环判断做准备,并向用户提示linpack将执行的次数;

please input the cycle times:

linpack will run n times

(2)配置HPL运行所需的系统环境

在手动输入执行循环次数后,就进行完全自动化过程,首先是配置运行HPL所需的系统环境,包括关闭屏保功能和SElinux,通过xset命令同时取消屏保功能和关闭节电模式,从而使整个压力程序测试过程中屏幕始终有显示,排除从屏保恢复对测试的影响,运行环境仍需将SElinux功能关闭,以避免对mpich、BLAS的安装产生影响,关闭SElinux功能既可通过修改/etc/selinux/config文件,也可通过命令setenforce实现,但修改config文件需要重启系统,而setenforce命令不需要,因此shell脚本程序选用setenforce来关闭SElinux功能;

(3)进行mpich、BLAS的自动化安装

该过程主要是基于linux中的SHELL脚本程序,SHELL脚本程序是一个免费的编程语言,用来实现自动和交互式任务进行通信,而无需人的干预,使用它创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端terminal得到输入,SHELL脚本程序则根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行;

在SHELL脚本程序中进行相应的设置、读取,完成软件安装中所需的人工交互的过程,SHELL脚本程序将自动判断读取输出信息,并给出指定输入;当软件完成安装,SHELL脚本程序将作出判断并进入下个软件的安装;

(4)配置HPL参数

根据当前系统的CPU线程数、内存空间硬件信息自动修改HPL计算矩阵的参数,以合适的参数使压力程序对系统进行重载加压,主要通过sed命令来修改HPL.dat文件;

(5)循环执行xhpl计算程序并重定向输出

完成了软件安装及环境部署,开始运行压力测试,运行测试的同时将所以执行过程重定向输出到指定路径下的文件中,SHELL脚本程序默认设置为/opt/HPL/bin/UNKNOWN/,并同时使用tail命令实时查看重定向的文件来实现既可实时监控程序执行情况,又可保存相关文件,如有异常,可通过保存的文件查看程序执行至哪一步出现故障,SHELL脚本程序采用文本追加的方式重定向输出,因此可保留程序所有循环执行的情况;

根据SHELL脚本程序读到的循环次数来循环执行xhpl计算程序,对系统进行加压,可将CPU每个核心的压力加载到100%,内存的压力加载到90%以上,通过长时间重载加压,达到无人值守压力测试,测试产品的稳定性,直到循环结束,完成了程序运行的所有流程。

说明书 :

一种基于HPL工具的无人值守压力测试的方法

技术领域

[0001] 本发明涉及一种计算机应用技术领域,具体地说是一种基于HPL工具的无人值守压力测试的方法。

背景技术

[0002] 随着IT领域技术的不断发展,传统信息化服务以及日趋强大的云计算服务对服务器的稳定性要求越来越高。作为服务器产品提供商,一款服务器无论是在研发阶段还是生产阶段都需要对产品进行系统压力测试,从而严格保证该产品的稳定性。而服务器研发种类越来越多,生产出货量也不断增加,压力测试的自动化、高效化也变得势在必行了。同时进行多款产品、批量产品的压力测试,可以是增加人员,也可以是编写自动化测试工具。然而显然自动化测试工具在人力、时间、成本等资源方面要节省的多,也减少了不必要的人工交互过程。

发明内容

[0003] 本发明的目的是提供一种基于HPL工具的无人值守压力测试的方法。
[0004] 本发明的目的是按以下方式实现的,具体步骤如下:
[0005] 1)利用shell脚本程序对MPI编译器和BLAS计算库的自动化安装,并对系统环境、HPL工具参数进行自动配置;
[0006] 2)根据设定的循环次数自动运行压力程序并重定向输出到文本中,通过执行该测试shell脚本程序,输入期望linpack执行的循环次数,准备长时间压力测试;
[0007] 3)shell脚本程序在读到循环次数后,开始自动配置系统环境,关闭SElinux和屏保可能影响长时间压力测试的系统功能;
[0008] 4)shell脚本程序自动安装mpich,并自动配置BLAS安装文件中对应的编译器路径,而无需手动更改,从而实现BLAS计算库的自动化安装;
[0009] 5)安装mpich、BLAS后,shell脚本程序根据当前系统的资源,CPU的核心数,线程数,内存空间大小对HPL的测试矩阵参数进行自动配置,HPL测试工具装完成;
[0010] 6)压力测试,shell脚本程序根据此前输入的循环次数执行xhpl程序开始压力测试,直至shell脚本程序判断循环次数已按指定值完成,在所有编译、安装、执行的过程中,除了执行窗口会有输出显示外,shell脚本程序中的重定向设置会将所有过程记录到指定文件中,以便后续查看分析。
[0011] 具体步骤如下:
[0012] (1)读取手动输入的循环次数值
[0013] 通过命令终端运行该自动化测试脚本,终端人工输入期望linpack的循环次数后,脚本程序会读取该次数值为后面的循环判断做准备,并向用户提示linpack将执行的次数;
[0014] please input the cycle times:
[0015] linpack will run n times
[0016] (2)配置HPL运行所需的系统环境
[0017] 在手动输入执行循环次数后,就进行完全自动化过程,首先是配置运行HPL所需的系统环境,包括关闭屏保功能和SElinux,通过xset命令同时取消屏保功能和关闭节电模式,从而使用整个压力程序测试过程中屏幕始终有显示,排除从屏保恢复对测试的影响,运行环境仍需将SElinux功能关闭,以避免对mpich、BLAS的安装产生影响,关闭SElinux功能既可通过修改/etc/selinux/config文件,也可通过命令setenforce实现,但修改config文件需要重启系统,而setenforce命令不需要,因此shell脚本程序选用setenforce来关闭SElinux功能;
[0018] (3)进行mpich、BLAS的自动化安装
[0019] 该过程主要是基于linux中的SHELL脚本程序,SHELL脚本程序是一个免费的编程语言,用来实现自动和交互式任务进行通信,而无需人的干预,使用它创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端terminal得到输入,SHELL脚本程序则根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行;
[0020] 在SHELL脚本程序中进行相应的设置、读取,完成软件安装中所需的人工交互的过程,SHELL脚本程序将自动判断读取输出信息,并给出指定输入;当软件完成安装,SHELL脚本程序将作出判断并进入下个软件的安装;
[0021] (4)配置HPL参数
[0022] 根据当前系统的CPU线程数、内存空间等硬件信息自动修改HPL计算矩阵的参数,以合适的参数使压力程序对系统进行重载加压,主要通过sed命令来修改HPL.dat文件;
[0023] (5)循环执行xhpl计算程序并重定向输出
[0024] 完成了软件安装及环境部署,开始运行压力测试,运行测试的同时将所以执行过程重定向输出到指定路径下的文件中,SHELL脚本程序默认设置为/opt/HPL/bin/UNKNOWN/,并同时使用tail命令实时查看重定向的文件来实现既可实时监控程序执行情况,又可保存相关文件,如有异常,可通过保存的文件查看程序执行至哪一步出现故障,SHELL脚本程序采用文本追加的方向重定向输出,因此可保留程序所有循环执行的情况;
[0025] 根据SHELL脚本程序读到的循环次数来循环执行xhpl计算程序,对系统进行加压,可将CPU每个核心的压力几乎加载到100%,内存的压力加载到90%以上,通过长时间重载加压,达到无人值守压力测试,测试产品的稳定性,直到循环结束,完成了程序运行的所有流程。
[0026] 本发明的目的有益效果是:基于HPL工具的无人值守压力测试的方法,特点在于可通过测试脚本直接在安装有Linux系统的机器上自动化安装HPL工具所需的MPI编译器,BLAS计算库,在完成安装后将自动进行HPL参数配置;并且会根据输入的执行次数自动运行压力测试。与此同时,每一次的压力测试都将重定向输出至指定路径的文件中,这样可清楚的查看每一次的结果。出问题时可查看运行了第几次出现了异常。该脚本使用方便,操作简单,实现高负载加压,并可根据需求自动运行压力测试并进行记录,而无需进行人工交互,实现真正的无人值守。该方法将特别适用于飞腾平台服务器(因其参数配置复杂,且时有可能出现异常),可将CPU的所有核心的使用率达到100%左右,完全免去了人工进行大量的软件安装、参数配置、运行及人工监视。通过本方法,只需将对应软件包拷贝到指定目录,并运行该测试脚本即可无人值守的完成压力测试。

附图说明

[0027] 图1是无人值守压力测试流程图;

具体实施方式

[0028] 参照说明书附图对本发明的方法作以下详细地说明。
[0029] 整个过程主要是利用shell脚本对MPI编译器,BLAS计算库的自动化安装,并对系统环境、HPL工具参数进行自动配置,免去人工交互过程,可根据设定的循环次数自动运行压力程序并重定向输出到文本中。通过执行该测试脚本,输入期望linpack执行的循环次数,达到长时间压力测试,测试脚本的流程如图1所示。脚本程序在读到循环次数后,开始自动配置系统环境,关闭SElinux和屏保等可能影响长时间压力测试的系统功能;脚本程序自动安装mpich,并自动配置BLAS安装文件中对应的编译器路径,而无需手动更改,从而实现BLAS计算库的自动化安装;安装mpich、BLAS后,程序根据当前系统的资源,CPU的核心数,线程数,内存空间大小对HPL的测试矩阵参数进行自动配置。至此,HPL测试工具已安装完成,该脚本程序根据此前输入的循环次数执行xhpl程序开始压力测试,直至脚本判断循环次数已按指定值完成。在所有编译、安装、执行的过程中,除了执行窗口会有输出显示外,脚本程序中的重定向设置会将所有过程记录到指定文件中,以便后续查看分析。
[0030] 实施例
[0031] 具体步骤流程如下
[0032] (1)读取手动输入的循环次数值
[0033] 通过命令终端运行该自动化测试脚本,终端会有如下提示,人工输入期望linpack的循环次数后,脚本程序会读取该次数值为后面的循环判断做准备。并向用户提示linpack将执行的次数。
[0034] please input the cycle times:
[0035] linpack will run n times
[0036] (2)配置HPL运行所需的系统环境
[0037] 在手动输入执行循环次数后,就进行完全自动化过程。首先是配置运行HPL所需的系统环境,包括关闭屏保功能和SElinux。主要通过xset命令同时取消屏保功能和关闭节电模式,从而使用整个压力程序测试过程中,屏幕始终有显示,排除从屏保恢复对测试的影响。运行环境仍需将SElinux功能关闭,以避免对mpich、BLAS的安装产生影响。关闭SElinux功能既可通过修改/etc/selinux/config文件,也可通过命令setenforce实现。但修改config文件需要重启系统,而setenforce命令不需要,因此shell脚本程序选用setenforce来关闭SElinux功能。
[0038] (3)进行mpich、BLAS的自动化安装
[0039] 该过程主要是基于linux中的SHELL脚本程序。SHELL是一个免费的编程语言,用来实现自动和交互式任务进行通信,而无需人的干预。使用它可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。SHELL脚本则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。
[0040] 通过该方法,在程序中进行相应的设置、读取,可完成软件安装中所需的人工交互的过程。以mpich软件包安装为例,程序将自动判断读取输出信息,并给出指定输入;当软件完成安装,程序将作出判断并进入下个软件的安装。
[0041] (4)配置HPL参数
[0042] 根据当前系统的CPU线程数、内存空间等硬件信息自动修改HPL计算矩阵的参数,以合适的参数使压力程序对系统进行重载加压。主要通过sed命令来修改HPL.dat文件。
[0043] (5)循环执行xhpl计算程序并重定向输出
[0044] 完成了软件安装及环境部署,将可以开始运行压力测试,运行测试的同时将所以执行过程重定向输出到指定路径下的文件中,脚本程序默认设置为/opt/HPL/bin/UNKNOWN/,并同时使用tail命令实时查看重定向的文件来实现既可实时监控程序执行情况,又可保存相关文件,如有异常,可通过保存的文件查看程序执行至哪一步出现故障。该脚本程序采用文本追加的方向重定向输出,因此可保留程序所有循环执行的情况。
[0045] 根据该脚本程序此前读到的循环次数来循环执行xhpl计算程序,对系统进行加压,可将CPU每个核心的压力几乎加载到100%,内存的压力加载到90%以上。通过长时间重载加压,达到无人值守压力测试,测试产品的稳定性。直到循环结束,完成了程序运行的所有流程。
[0046] 本方法借用SHELL脚本编写实现HPL的自动化安装并循环执行,大大简化了压力测试的操作流程,特别是对于高密度服务器,轻松实现了对大量节点的无人值守压力测试。本方法在研发阶段、测试阶段及生产阶段的应用,模拟用户真正的大负载使用,实现了稳定性测试的自动化、便捷化。另外,本方法对于不熟悉linux而又需要在linux平台下测试产品稳定性的技术人员有着实际而深刻的意义。
[0047] 除说明书所述的技术特征外,均为本专业技术人员的已知技术。