本人之前的一段时间测试了许多信创的终端和服务器,在进行性能测试时使用了许多测试工具,也遇到了一些问题。这些测试工具在网上都可以搜到详细的教程,我想借助这边文章将诸多测试工具的测试步骤整合一下,方便部分需要用到这些工具测试的人员查看。当然你可能会在安装或测试的过程中遇到各种各样的问题,欢迎你们的补充和交流。
1、开机时间
1.1 测试步骤
1、使用命令测试开机时间:systemd-analyze plot >boot.svg
测试结果如下
2、CPU性能-Speccpu2006
由The Standard Performance Evaluation Corporation提供, 程序测试计算密集型程序在高性能计算机上的计算效率,包含SPEC INT和SPEC FP, 分别对应整型计算机与浮点计算。根据编译方式的不同,可以分为base测试和peak测试,peak测试使用对程序包中的每个程序 使用单独的编译选项,相较于base模式会有更好的性能。根据运行方式的不同,可以分为rate测试和speed测试,rate测试 衡量计算机能够同时执行的大规模应用程序的吞吐量,speed测试衡量计算机最快速的完成某项应用程序的耗时, SPEC是一个非营利组织。
2.1 测试步骤
1、安装依赖包:apt-get install gcc g++ gfortran libbz2-dev
2、复制speccpu2006压缩包并进行解压:tar xvf speccpu2006-v1.0.1-newest.tar
3、授予权限:chmod -R a+x /home/speccpu2006-v1.0.1
4、编辑 tools/src/buildtools文件(311行和312行)
注释或删除改行:export LD_LIBRARY_PATH DYLD_LIBRARY_PATH(311行)
在312行前添加:export PERLFLAGS="-A libs=-lm -A libs=-ldl"
5、修改tools/src/make-3.8.0/glob/glob.c文件,在209行“#if !defined __alloca && !defined GNU_LIBRARY”和230行“#endif”前添加“//”注释掉。
6、安装speccpu2006:./install.sh
7、加载环境变量:. ./shrc(注意这里是:.空格./shrc)
8、检查是否安装成功:runspec -V
9、选择对应的配置文献进行测试,配置文件在config目录中,如下图:
2.2 测试命令
2.2.1、arm平台
runspec -c arm64.cfg -n 3 -r 1 all(单线程)
runspec -c arm64.cfg -n 3 -r N all(多线程)
2.2.2、X86平台
runspec -c arm64.cfg -n 3 -r 1 all(单线程)
runspec -c arm64.cfg -n 3 -r N all(多线程)
2.2.3、mips平台
runspec -c mips64.cfg -n 3 -r 1 all(单线程)
runspec -c mips64.cfg -n 3 -r N all(多线程)
-c指定测试文件,在config目录中选择适合自己CPU架构的.cfg文件;-n指定测试轮数(3轮测试的话测试完成后会自动算出Base Ratio的几何平均数)。测试完成后,会同时输出整型、浮点型性能得分。(这一部分我还是没有很深入的去研究他们的代码是怎么做的,后续研究之后继续补坑)!!!!
3、操作系统内核-lmbench
3.1 测试步骤
1、复制文件中的lmbench压缩包:tar -zxvf lmbench-3.0-a9.tgz
2、创建results目录:mkdir results
3、授予lmbench可执行权限:chmod 777 –R lmbench-3.0-a9/
4、进入lmbench目录:cd lmbench-3.0-a9/
5、执行测试:make results
3.2 测试参数设置
lmbench开始测试后会要求输入参数,其中测试内存设置大小根据自己的需求进行修改,默认为系统内存的80%。无特殊要求时,可以选择小内存进行测试,如:64MB。注:设置的内存大小对测试结果影响不大;最后一项的Mail results 输入n。其余直接回车。
3.3 结果查看
测试结束后,执行make see查看测试结果。测试结果保存在results目录下的summary.out文件中,打开文件可看到如下图的结果。
3.4 结果说明
Shell命令启动时间(exec proc)、系统信号处理时间(sig hndl)、2p/16KB的上下文切换性能(2p/16k)、16p/64KB的上下文切换性能(16p/64k)、0KB文件创建时间、0KB文件删除时间(0k File Create Delete)、10KB文件创建时间、10KB文件删除时间(10k File Create Delete)。
3.5 常见问题
1、Arm架构的CPU在进行测试时可能遇到适配问题,此时需要在步骤5之前进行文件替换。执行:cp config.guess lmbench-3.0-a9/scripts/gnu-os,其中config.guess文件位置如图:
2、如果遇到测试结果显示不全的问题,需要修改getsummary 文件。找到lmbench-3.0-a9/scripts/getsummary文件,插入以下代码:
4、测试文件复制速度-time dd
4.1 测试步骤
1、使用dd命令生成一个10G文件:dd if=/dev/zero of=test1 bs=1024M count=10
2、使用time dd命令进行文件拷贝速度和时间测试:time dd if=/data/home/inspur/test1 of=/data/home/inspur/testfile/test
说明:if为源文件地址 of为目标文件地址;生成的10G文件为全零文件,如果不想麻烦可以直接用/dev/zero生成。
测试结束后输出时间和复制速度,如下图:
注:dd命令可以做挺多事,有兴趣的可以关注一下。
5、文件读写性能-IOzone
5.1 测试步骤
1、查看硬盘情况:lsblk
2、创建一个目录用于挂载硬盘:mkdir /etc/test (此步骤必须在数据盘中进行,切勿使用系统盘)
3、挂载硬盘:mount /dev/硬盘名 /etc/test (一定要选择大于测试文件的硬盘)
4、将iozone压缩包复制到本地
5、解压iozone:tar -xvf iozone3_493.tgz
6、进行current目录:cd iozone3_493/src/current/
7、编译:make linux
8、开始测试:sudo ./iozone -s 128g -i 0 -i 1 -f /etc/test/testfile
-s:设置测试时文件大小(根据设备的内存大小来确定)
-i :设置I/O测试模式(0=write/Re-write,1=read/Re-read,2=random-read/write,3=Read-backwards … 12=preadv/Re-preadv)
-f filename: 指定测试文件的名字,完成后会自动删除(这个文件必须指定你要测试的那个硬盘中)
测试完成后输出结果,如下图:
5.2 常见问题
1、shell命令最后的文件地址保证正确(不正确的地址,测试会报错)
2、挂载硬盘大小应大于测试文件的大小。(挂载时确定测试文件的大小)
6、文件系统测试-unixbench
6.1 测试步骤
1、将unixbench压缩包复制到本地并解压:tar xvf unixbench-5.1.2.tar.gz
2、编辑Makefile文件:修改GL_LIBS行,增加参数“-lm”,如下图:
如果在测试过程中不需要测试图形化界面的性能,GRAPHIC_TESTS = defined这一行可以注释掉。
3、进入unixbench目录:cd unixbench-5.1.2
4、编译:make
5、修改Run文件,使用lscpu查看CPU核数,如果CPU是飞腾FT-2000+,核数是64核,就把参数改成64,如下图:
6、进行测试:./Run -c n (n表示使用多少线程测试)
测试结束后,输出各项得分和总得分,如下图:
6.2 常见问题
1、缺少库支持
7、内存带宽-stream
stream由Virginia University提供,通过生成四种不同模式下的内存读写操作,用于测试高性能计算机的内存带宽。 现代计算机中都是用缓存技术,为了保证测试正确反映计算机内存的读写性能,测试中使用的数据量应远大于缓存大小。
7.1 测试步骤
1、安装gfortran:apt-get install gfortran
2、将stream压缩包复制到本地,然后解压:tar xvf stream-5.9-1.tar.bz2
3、进入stream目录:cd stream-5.9-1
4、编译:make
5、进行单线程和多线程测试:./Run.sh -n 1 -n N(这里的-n参数的值根据实际CPU核数设定,如只有4核,只跑./Run -n 1 -n 4)
测试完成后,在results目录下查看结果,复制(copy)、尺度变换(scale)、矢量求和(add)、复合矢量求和(triad)
8、2D、3D性能测试
8.1 2D性能测试
1、安装unixbench,安装过程见第6章
2、输入./Run graphics命令
测试完成后,输出各项得分和总得分,如下图:
8.2 3D性能测试
1、安装glxgears:apt install mesa-utils
2、执行测试:vblank_mode=0 glxgears
测试完成后,选取5-10个连续数值求平均值,如下图:
注:这个3D性能测试我感觉很不严谨,但是暂时还没找到更好的方法,请各位大佬指点。
9、网络传输能力-netperf
Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。
9.1 测试步骤
1、将netperf压缩包复制到本地并解压:tar xvf netperf-2.5.0.tar.gz
2、进入netperf目录:cd netperf-netperf-2.5.0/
3、编译:./configure
4、安装:make && make install
5、测试是否安装成功:netperf -h
6、服务端输入命令开放端口:netserver
7、客户端输入命令进行测试:./netperf -H xxx -t TCP_STREAM -l 60
9.2 常见问题
1、权限不足导致找不到此命令
2、configure文件需指定架构才能编译成功