一种自动化进行服务器整机测试的方法

文档序号:6633240阅读:1023来源:国知局
一种自动化进行服务器整机测试的方法
【专利摘要】本发明公开了一种自动化进行服务器整机测试的方法,其具体实现过程为:搭建测试平台,准备测试环境,对硬盘使用fio进行性能测试;对CPU使用PI计算进行性能测试;对内存使用stream进行性能测试;对所有硬盘使用fio进行压力测试;对CPU使用mprime进行压力测试;对内存使用memtester进行压力测试。该一种自动化进行服务器整机测试的方法与现有技术相比,操作更佳简单,自动化程度高,实用性较强,能够节省人力,有效确保了服务器的稳定性,是验证产品质量的非常有效的方法。
【专利说明】一种自动化进行服务器整机测试的方法

【技术领域】
[0001]本发明涉及服务器测试【技术领域】,具体地说是一种实用性强、自动化进行服务器整机测试的方法。

【背景技术】
[0002]当前国内的服务器供应商已经开拓各个领域服务器的应用,比如互联网、金融…等;客户对服务器的整体要求也越来越高。对于金融、通信等TOP-VIP客户,如何在出厂前保障每一台机器的部件都是合格可用的,除了现有的压力老化测试,确保部件是经过前期测试认证的一类部件,还有对部件的性能测试也是必不可少的。经过这些测试检验,从而确保该产品的质量,能够减少输出给TOP-VIP客户的部件的不良率,是客户对我们的满意度越来越高。
[0003]基于此,现提供一种自动化进行服务器整机测试的方法,本测试方法改进了现有的老化测试,增加了配置部件(硬盘、内存、CPU、外插卡)对比,部件性能测试和压力测试。


【发明内容】

[0004]本发明的技术任务是针对以上不足之处,提供一种实用性强、自动化进行服务器整机测试的方法。
[0005]一种自动化进行服务器整机测试的方法,其具体实现过程为:
一、组装待测试的服务器机器;
二、从PXE服务器上安装Linux系统;
三、安装完成后自动从Pxe服务器上下载测试程序;
四、生成临时配置文件,并与测试程序中提前生成的配置文件进行内存、硬盘、CPU、外插卡的型号、容量、数量、插槽位置比对:如果全部符合,输出OK到日志log;如果不符合,将fail信息输出到日志log;
五、对硬盘使用f1进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将faiI的彳η息输出到log ;
六、对CPU使用PI计算进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将fail的信息输出到log ;
七、对内存使用stream进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将fail的信息输出到log ;
八、对所有硬盘使用f1进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ;
九、对CPU使用mprime进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ;
十、对内存使用memtester进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ; i^一、整理测试log,输出是否全部0K,如果有fail项,则输出相关fail信息。
[0006]所述步骤五的硬盘性能测试过程中使用的f1为开源的硬件I/O压力测试工具,用于测试磁盘/SSD的1性能,其使用f1工具具体测试过程为:采用f1 +负载说明文件形式分别测试硬盘的4K、16K、64K、256K、1024K的f1性能,这里的f1性能包括顺序读、顺序写、随机读、随机写;f1对所有的硬盘和raid进行性能测试后,得出测试结果,并将该测试结果与植入程序内部的标准值进行比对,如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,则测试fail,输出fail到测试log。
[0007]所述步骤六的CPU性能测试过程中使用Linux自带的be计算器计算pi值来作为CPU性能测试,其具体的计算命令为:
time echo “scale=5000 ;4*a(l)” be -1 - q ;
上述公式即为让be计算I的反正切,计算精度是5000位;其中time是计时程序,scale是精度,4*a(l)为调用的反正切函数,这里I的反正切是pi/4, Pi=4* pi/4 ;
然后找到当前服务器的所有CPU核心,即cat /proc/cpuinfo I grep process awk‘{print $NF},然后对所有的核心挨个进行以上命令的PI测试,得出计算所用时间;最后把所有的时间求平均值;
将时间平均值与植入程序内部的标准值进行比对,如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,则测试fail,输出fail到测试log。
[0008]所述步骤六中内存性能测试采用的是stream测量工具,该工具包括Copy >Scale、Add、Triad四个操作步骤,其中:
Copy操作步骤为:先访问一个内存单元读出其中的值,再将值写入到另一个内存单元;
Scale操作步骤为:先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元;
Add操作步骤为:先从内存单元读出两个值,做加法运算,再将结果写入到另一个内存单元;
Triad操作即为将Copy、Scale、Add三种操作组合起来进行测试,具体操作步骤为:先从内存单元中中读两个值a、b,对其进行乘加混合运算(a+因子*b),将运算结果写入到另一个内存单元;
采用上述操作步骤完成stream测试程序对内存进行性能测试后,输出测试结果,与预先植入的标准对比,如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,贝1』测试fail,输出fail到测试log。
[0009]所述硬盘压力测试过程为:使用f1对所有硬盘和raid进行读写测试,在测试完成之后,如果服务器没有出现死机或者错误,则杀掉f1的所有进程,进行下一项测试;如果有错误,则输出错误信息到测试log。
[0010]所述CPU压力测试过程为:使用mprime运算软体,默认其只使用一个核心,首先找到当前服务器的所有CPU核心,即 cat /proc/cpuinfo I grep process awk ‘{print $NF},然后对所有的核心进行加压;测试完成如果没有死机或者错误,则杀掉mprime的所有进程,进行下一项测试;如果有错误,则输出错误信息到测试log。
[0011]所述内存压力测试过程为:使用memtester测试随机值、异或比较、减法、乘法、除法、与或运算,通过设置测试内存的大小和次数,对系统现有的内存进行上面项目的测试;测试完成后如果没有死机或者错误,则杀掉memterter的所有进程,进行下一项测试;如果有错误,则输出错误信息到测试log。
[0012]本发明的一种自动化进行服务器整机测试的方法,具有以下优点:
该发明的一种自动化进行服务器整机测试的方法能够代替现有的老化程序,除了现有的压力测试,增加了部件的配置对比,部件性能测试,并输出测试结果,与预先置于的标准值进行对比,从而提前发现不良部件;该测试方法操作简单,自动化程度高,实用性较强,能够节省人力,有效确保了服务器的稳定性,是验证产品质量的非常有效的方法,适用范围广泛,易于推广。

【专利附图】

【附图说明】
[0013]附图1为本发明的实现流程图。

【具体实施方式】
[0014]下面结合附图和具体实施例对本发明作进一步说明。
[0015]Linux系统内置有很多工具可以直接读取到CPU的型号;内存的容量、型号、数量、厂家信息、所插的位置;硬盘的数量、位置、容量、厂家、FW信息。使用这些工具我们可以在生产之前的测试阶段,使用TOP-VIP专用的一类部件进行测试,将这些硬件信息(包括CPU的数量、型号;内存的数量、所插位置、容量、型号、厂家;硬盘的数量、所插位置、型号、厂家、容量、FW信息;外插卡的位置和型号)全部按照一定的格式输出到一个配置文件中。
[0016]当测试的配置文件非常多之后,程序运行时挨个去比对所有文件非常耗时。此处可以对基线配置文件的命名进行约束,以减少比对时间。
[0017]服务器B1S下的DMI信息有很多的字段可以人工刷入,我们可以选取其中的一个字段作为配置标识。在预先测试的时候,使用本字段要刷入的字符串命名配置基线文件。
[0018]在产线生产老化时,将标识字符串刷入B1S的指定字段,程序会自动去读取此字段的字符串,然后优先去找以此字符串命名的配置基线文件。
[0019]比对结束后,如果全部符合,那就输出测试OK到测试log ;如果有不符合项,则将不符合项fail信息输出到测试log,用于debug。
[0020]基于此,本发明提供一种自动化进行服务器整机测试的方法,其中部件性能测试将使用硬盘一f1 ;内存一stream ;CPU—PI测试。将每一项测试的结果都输出到测试log里面,然后与提前植入到测试程序里面的标准进行比对,对符合的项,输出测试OK到log ;对不符合标准的项,输出相应的fail信息到测试log。如附图1所示,其具体实现过程为:
一、组装待测试的服务器机器;
二、从PXE服务器上安装Linux系统;
三、安装完成后自动从Pxe服务器上下载测试程序;
四、生成临时配置文件,并与测试程序中提前生成的配置文件进行内存、硬盘、CPU、外插卡的型号、容量、数量、插槽位置比对:如果全部符合,输出OK到日志log;如果不符合,将fail信息输出到日志log;
五、对硬盘使用f1进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将fail的?η息输出到log ;
六、对CPU使用PI计算进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将fail的信息输出到log ;
七、对内存使用stream进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将fail的信息输出到log ;
八、对所有硬盘使用f1进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ;
九、对CPU使用mprime进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ;
十、对内存使用memtester进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ;
i^一、整理测试log,输出是否全部0K,如果有fail项,则输出相关fail信息。
[0021]进一步的,上述步骤五至步骤十的详细过程为:
硬盘性能测试,即f1性能测试:f1是一个开源的硬件i/o压力测试工具,主要是用来测试磁盘/SSD的1性能,这个工具的可定制性非常强,可以根据测试者的想法进行各种混合1的测试,一种是命令形式,即f1 [-opt1ns];另一种则是f1+负载说明文件形式。此测试方法使用f1+负载说明文件形式将分别测试硬盘的4K、16K、64K、256K、1024K的f1性能,包括顺序读、顺序写、随机读、随机写。
[0022]f1对所有的硬盘和raid进行性能测试,然后得出测试结果。与植入程序内部的标准值进行比对,如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,贝1』测试fail,输出fail到测试log。
[0023]CPU性能测试:
使用Linux自带的be计算器计算pi值来作为CPU性能测试benchmark。
[0024]使用命令time echo “scale=5000 ; 4*a(l),,| be -1 - q。
[0025]time是计时程序。scale是精度,4*a(l)调用了反正切函数。由三角函数我们知道I的反正切是pi/4, Pi=4* pi/4。-1 _q参数的意思请参照manpage。这一行其实就是让be计算I的反正切,计算精度是5000位。
[0026]先找到当前服务器的所有的核心,cat /proc/cpuinfo I grep process awk‘ {print $NF} ’。然后对所有的核心挨个进行以上命令的PI测试,得出计算所用时间。然后把所有的时间求平均值。植入程序内部的标准值进行比对,如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,则测试fail,输出fail到测试log。
[0027]内存性能测试:
stream是业界广为流行的综合性内存带宽实际性能测量工具之一,支持Copy、Scale、Add、Triad四种操作,下面分别介绍四种操作的含义:
Copy操作最为简单,它先访问一个内存单元读出其中的值,再将值写入到另一个内存单元。
[0028]Scale操作先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元。
[0029]Add操作先从内存单元读出两个值,做加法运算,再将结果写入到另一个内存单J Li ο
[0030]Triad的中文含义是将三个组合起来,在本测试中表示的意思是将Copy、Scale、Add三种操作组合起来进行测试。具体操作方式是:先从内存单元中中读两个值a、b,对其进行乘加混合运算(a+因子* b),将运算结果写入到另一个内存单元。
[0031]stream测试程序对内存进行性能测试,测试完毕输出测试结果,然后与预先植入的标准对比,如果如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,则测试fail,输出fail到测试log。
[0032]部件压力测试。
[0033]硬盘压力测试:
使用f1对所有硬盘和raid进行读写测试,已达到压力检验的目的。
[0034]f1的测试时间根据老化的时间来设定。在测试完成之后,如果服务器没有出现死机或者错误,则杀掉f1的所有进程,进行下一项测试。如果有错误,则输出错误信息到测试log。
[0035]CPU压力测试:
mprime是一个科学运算软体,它需要利用CPU进行大量且精确的数学运算,因而产生大量的热(烧机),且程式并无法容错,所以当程式运作一段时间后,若出现错误讯息,表示系统整体可能不够稳定。
[0036]默认mprime只使用一个核心,所以先找到当前服务器的所有CPU核心cat /proc/cpuinfo I grep process awk ‘{print $NF},然后对所有的核心进行加压。测试时间根据所有的老化时间来定。测试完成如果没有死机或者错误,则杀掉mprime的所有进程,进行下一项测试。如果有错误,则输出错误信息到测试log。
[0037]内存压力测试:
memtester主要是捕获内存错误和一直处于很高或者很低的坏位,其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等。通过给定测试内存的大小和次数,可以对系统现有的内存进行上面项目的测试。
[0038]测试时间根据所有的老化时间来定。测试完成如果没有死机或者错误,则杀掉memterter的所有进程,进行下一项测试。如果有错误,则输出错误信息到测试log。
[0039]本服务器自动化进行整机配置检测和性能及稳定性测试的测试方法,适用x86架构红帽以及Centos操作系统6系列,此方法能够对老化的机器进行配置对比,确保使用的部件为测试认证过的专供TOP-VIP的一类部件。同时对CPU、内存、硬盘进行了性能测试,并输出测试结果,同内置的标准值进行比对,确保提前发现不良个体部件。对CPU、硬盘、内存的压力测试,使各部件的稳定性得到测试。该方法弥补了只进行压力测试的老化程序,提高了老化的质量保障作用。
[0040]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种自动化进行服务器整机测试的方法的权利要求书的且任何所述【技术领域】的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【权利要求】
1.一种自动化进行服务器整机测试的方法,其特征在于,其具体实现过程为: 一、组装待测试的服务器机器; 二、从PXE服务器上安装Linux系统; 三、安装完成后自动从Pxe服务器上下载测试程序; 四、生成临时配置文件,并与测试程序中提前生成的配置文件进行内存、硬盘、CPU、外插卡的型号、容量、数量、插槽位置比对:如果全部符合,输出OK到日志log;如果不符合,将fail信息输出到日志log; 五、对硬盘使用f1进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将faiI的{η息输出到log ; 六、对CPU使用PI计算进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将fail的信息输出到log ; 七、对内存使用stream进行性能测试:如果测试值都满足,输出OK到log;如果有fail的项目,将fail的信息输出到log ; 八、对所有硬盘使用f1进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ; 九、对CPU使用mprime进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ; 十、对内存使用memtester进行压力测试:如果测试结束后无报错,不死机,则输出OK到测试log ;否则输出fail信息到测试log ; i^一、整理测试log,输出是否全部0K,如果有fail项,则输出相关fail信息。
2.根据权利要求1所述的一种自动化进行服务器整机测试的方法,其特征在于,所述步骤五的硬盘性能测试过程中使用的f1为开源的硬件1/0压力测试工具,用于测试磁盘/SSD的1性能,其使用f1工具具体测试过程为:采用f1 +负载说明文件形式分别测试硬盘的4K、16K、64K、256K、1024K的f1性能,这里的f1性能包括顺序读、顺序写、随机读、随机写;f1对所有的硬盘和raid进行性能测试后,得出测试结果,并将该测试结果与植入程序内部的标准值进行比对,如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,贝U测试fail,输出fail到测试log。
3.根据权利要求1所述的一种自动化进行服务器整机测试的方法,其特征在于,所述步骤六的CPU性能测试过程中使用Linux自带的be计算器计算pi值来作为CPU性能测试,其具体的计算命令为:
time echo “scale=5000 ;4*a(l)” be -1 - q ; 上述公式即为让be计算I的反正切,计算精度是5000位;其中time是计时程序,scale是精度,4*a(l)为调用的反正切函数,这里I的反正切是pi/4, Pi=4* pi/4 ; 然后找到当前服务器的所有CPU核心,即cat /proc/cpuinfo I grep process awk‘{print $NF},然后对所有的核心挨个进行以上命令的PI测试,得出计算所用时间; 最后把所有的时间求平均值; 将时间平均值与植入程序内部的标准值进行比对,如果测试结果大于等于标准值,则测试0K,输出OK到log ;如果测试结果低于标准值,则测试fail,输出fail到测试log。
4.根据权利要求1所述的一种自动化进行服务器整机测试的方法,其特征在于,所述步骤七中内存性能测试采用的是stream测量工具,该工具包括Copy、Scale、Add、Triad四个操作步骤,其中: Copy操作步骤为:先访问一个内存单元读出其中的值,再将值写入到另一个内存单元; Scale操作步骤为:先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元; Add操作步骤为:先从内存单元读出两个值,做加法运算,再将结果写入到另一个内存单元; Triad操作即为将Copy、Scale、Add三种操作组合起来进行测试,具体操作步骤为:先从内存单元中中读两个值a、b,对其进行乘加混合运算(a+因子*b),将运算结果写入到另一个内存单元; 采用上述操作步骤完成stream测试程序对内存进行性能测试后,输出测试结果,与预先植入的标准对比,如果测试结果大于等于标准值,则测试0K,输出OK到log;如果测试结果低于标准值,贝1』测试fail,输出fail到测试log。
5.根据权利要求1所述的一种自动化进行服务器整机测试的方法,其特征在于,所述硬盘压力测试过程为:使用f1对所有硬盘和raid进行读写测试,在测试完成之后,如果服务器没有出现死机或者错误,则杀掉f1的所有进程,进行下一项测试;如果有错误,则输出错误信息到测试log。
6.根据权利要求1所述的一种自动化进行服务器整机测试的方法,其特征在于,所述CPU压力测试过程为:使用mprime运算软体,默认其只使用一个核心,首先找到当前服务器的所有 CPU 核心,即 cat /proc/cpuinfo I grep process awk ‘{print $NF},然后对所有的核心进行加压;测试完成如果没有死机或者错误,则杀掉mprime的所有进程,进行下一项测试;如果有错误,则输出错误信息到测试log。
7.根据权利要求1所述的一种自动化进行服务器整机测试的方法,其特征在于,所述内存压力测试过程为:使用memtester测试随机值、异或比较、减法、乘法、除法、与或运算,通过设置测试内存的大小和次数,对系统现有的内存进行上面项目的测试;测试完成后如果没有死机或者错误,则杀掉memterter的所有进程,进行下一项测试;如果有错误,则输出错误信息到测试log。
【文档编号】G06F11/22GK104407951SQ201410615921
【公开日】2015年3月11日 申请日期:2014年11月5日 优先权日:2014年11月5日
【发明者】闫硕 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1