← 返回首页
编程开发

performance使用手册

 

 

 

performance使用手册

 

编写人:夏欣悦

编写日期:20211227

审核人:

审核日期

批准人: 

批准日期:

 

麒麟软件有限公司

 

 



版本说明

日期

版本号

发布说明

编写者

签批人

角色

人员

签字

20211227

V1.0

新建

夏欣悦

 

 

 

2022-03-15

V1.1

新增申威架构适配

夏欣悦

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

目录

1. 引言

2. 概述

2.1 测试环境

2.2 测试要求

3. performance工具包结构说明

4. 性能测试

4.1 综合性能Unixbench测试

4.1.1 测试目的

4.1.2 预置条件

4.1.3 自动测试步骤

4.1.4 手动测试步骤

4.2 网络性能Netperf测试

4.2.1 测试目的

4.2.2 预置条件

4.2.3 自动测试步骤

4.2.4 手动测试步骤

4.3 磁盘IO性能fio测试

4.3.1 测试目的

4.3.2 预置条件

4.3.3 自动测试步骤

4.3.4 手动测试步骤

4.4 内存读写性能stream测试

4.4.1 测试目的

4.4.2 预置条件

4.4.3 自动测试步骤

4.4.4 手动测试步骤

4.5 系统综合性能lmbench测试

4.5.1 测试目的

4.5.2 预置条件

4.5.3 自动测试步骤

4.5.4 手动测试步骤

4.6 硬盘读写性能iozone测试

4.6.1 测试目的

4.6.2 预置条件

4.6.3 自动测试步骤

4.6.4 手动测试步骤

4.7 java性能测试specjvm

4.7.1 测试目的

4.7.2 预置条件

4.7.3 自动测试步骤

4.7.4 手动测试步骤

4.8 整型及浮点型计算性能speccpu测试

4.8.1 测试目的

4.8.2 预置条件

4.8.3 自动测试步骤

4.8.4 手动测试步骤

5. 稳定性测试

5.1 LTP工具测试系统稳定性

5.1.1 测试目的

5.1.2 预置条件

5.1.3 自动测试步骤

5.1.4 手动测试步骤

1. 引言

此文档主要介绍测试服务器性能的方法,包括自动化测试方法和手动测试方法。

2. 概述

Performance工具包整合了性能测试工具和自动化测试脚本,方便本地自动化测试或者手动测试。

1  

2  

2.1  测试环境

硬件环境:x86_64aarch64mips64elloongarch

软件环境:Kylin Linux Advanced Server V10(SP1)

Kylin Linux Advanced Server V10(SP2)

2.2  测试要求

1. 配置好yum 源;

2. 系统已安装python,用来执行测试结果转json脚本,此脚本兼容python2python3

3. speccpu测试满线程需要满足,内存大于2G * 线程数,speccpu安装磁盘空间(一般安装在/home)要为每个线程预留 23G硬盘空间。

4. stream测试默认测试DN=80000000,若L3缓存(lscpu查看)大于160M则需要调整DN,简单计算DN=L3MB*1000000 / 2,否则测试结果会因测试缓存虚高;若空闲内存小于1850MB,需要清理内存或者根据以上公式调整DN,否则测试结果会因内存不足偏低。

3. performance工具包结构说明

tools :以测试工具命名的文件夹分类存放的工具包

config  :以测试工具命名的文件夹分类存放的配置文件

script :以测试工具命名的文件夹分类存放的测试工具用到的脚本

根目录 :放置自动化测试脚本

results :放置测试结果

json :存放处理后的测试数据,用于生成excel或上传性能平台

 

4.  性能测试

3  

4  

4.1  综合性能Unixbench测试

3.1.1  测试目的

unixbench工具验证系统综合性能。

 

4.1.3  预置条件

准备好performance测试工具

 

4.1.4  自动测试步骤

1. 脚本参数说明:

执行 bash Unixbench.sh –h可以查看帮助信息

single 测试系统单线程性能

multi 测试系统多线程性能

base 测试系统单线程和多线程性能

 

2. test_opt.h测试参数设置

UNIXBENCH_VERSION unixbench工具版本

3. 执行测试:

# cd Performance

# bash Unixbench.sh base

 

4.1.5  手动测试步骤

1. 解压UnixBench测试套件unixbench5.1.3-new.tar

# tar xvf unixbench5.1.3-new.tar

2 修改Run文件

修改第109行:

 ‘system’ => { ‘name’ => “System Benchmarks”, ‘maxCopies’ => 64 },

‘system’ => { ‘name’ => “System Benchmarks”, ‘maxCopies’ => 1024 },

修改第112

 ‘misc’ => { ‘name’ => “Non-Index Benchmarks”, ‘maxCopies’ => 64 },

‘misc’ => { ‘name’ => “Non-Index Benchmarks”, ‘maxCopies’ => 1024 },

3. 安装依赖包 libx11-devel libXext libXext-devel

# yum install libx11-devel libXext libXext-devel

4. 进入Unixbench解压后的目录下,编译:

# cd UnixBench

# make

5. 清除缓存:

# sync

# echo 3 > /proc/sys/vm/drop_caches

6. 测试单线程和多线程性能,执行命令:

# ./Run -c 1 -c N

// 其中N代表cpu核数8. 查看results 文件夹下的测试结果。

4.2  网络性能Netperf测试

4.2.1  测试目的

使用Netperf工具测试系统网络性能。

 

4.2.1  预置条件

1. 准备好performance测试工具;

2. 准备被测机器A和陪测机器B,并用网线直连,直连后检查网口速度正常;

3. 被测机器A和陪测机器B都关闭防火墙;

# systemctl stop firewalld

# iptables -F

 

4.2.2  自动测试步骤

1. 脚本参数说明:

执行 bash netperf.sh –h可以查看帮助信息

tcp_stream 测试TCP吞吐率

udp_stream 测试UDP带宽

tcp_rr 测试TCP传输速度

udp_rr 测试UDP传输速度

ping_sh 测试网络延时

trans_rate 测试网络传输速率

omni 测试网络响应时间

tcp_crr 测试TCP_CRR性能

desktop 包括TCP_STREAM UDP_STSREAM TCP_RR UDP_RR ping

server 包括TCP_STREAM UDP_STAREAM TCP_RR UDP_RR TCP_CRR omni trans

 

2. test_opt.h测试参数设置

NETPERF_VERSION netperf工具版本

NETPERF_TIME 测试时间,默认120s

NETPERF_SIP 服务端IP

NETPERF_USER 服务端用户名

NETPERF_PWD 服务端密码

NETPERF_SDIR 服务端脚本安装目录,默认”/opt”

3. 执行测试:

# cd Performance

# bash netperf.sh server

 

4.2.3  手动测试步骤

1. 在被测机A和陪测机B上均安装netperf

解压netperf# unzip netperf-2.7.0.zip

进入netperf文件夹中打开终端执行:

arm架构中执行:

# ./configure –build=arm-linux && make && make install  

x86架构中执行:

# ./configure && make && sudo make install  

龙芯/lonngarch架构中执行:

# ./configure –build=mips-linux && make && make install

申威架构中执行:

# ./configure –build=none && make && make install

 

2. 在陪测机器B上开启netperf服务:# netserver

3. 被测机器A作为客户端:打开终端运行相应命令测试

TCP吞吐率:

# netperf -H serverip -t TCP_STREAM -l 120

 

TCP传输速度:

# netperf -H serverip -t TCP_RR -l 120

 

UDP带宽测试:

# netperf -H serverip -t UDP_STREAM -l 120

 

UDP传输速度测试:

# netperf -H serverip -t UDP_RR -l 120

 

ping测试:

# ping serverip

 

网络传输速率trans测试:

# netperf -H serverip -l 120

 

网络相应时间omni测试:

# netperf -t omni -H serverip — -d rr -l 120 -O “THROUGHPUT,THROUGHPUT_UNITS,MIN_LATENCY,MAX_LATENCY,MEAN_LATENCY”

// 参数含义:-t 选择测试模式、-H 后面接serverip,即A机器IP-l 测试时间

 

TCP_CRR测试:

# netperf -H serverip -t TCP_CRR –l 120

 

4.3  磁盘IO性能fio测试

3.3.1  测试目的

测试操作数据盘读写性能。

4.3.1  预置条件

准备好performance测试工具

 

4.3.2  自动测试步骤

1. 脚本参数说明:

执行 bash fio.sh –h可以查看帮助信息

s  server_performance 服务器读写性能测试

 

2. test_opt.h测试参数设置

FIO_VERSION netperf工具版本

FIO _CPU 测试线程数,默认是测试机线程数,最大值为16

FIO _IODEPTH 队列深度,默认32

FIO _FILENAME 测试路径,默认/fio_test

FIO_TESTNUM 测试次数,默认是1

3. 执行测试:

# cd Performance

# bash fio.sh -s

 

4.3.3  手动测试步骤

1. 安装libaio引擎:

# yum install libaio1 libaio-devel

mips架构的libaio-0.3.111-5-p01.ky10.mips64ellibaio-devel-0.3.111-5.p01.ky10.mips64el 有问题,无法使用libaio引擎。

如果yum安装后查看libaiolibaiodevel为以上版本,则需要手动安装config/fio/目录下的两个rpm包。

 

2. 检查/usr/include/asm是否存在,若不存在则建立软链接:

# ln -s /usr/include/asm-generic /usr/include/asm

 

3.  解压 fio-3.20.tar.bz2

# tar -xjf fio-3.20.tar.bz2

 

4. 进入安装目录:

# cd fio-3.20

 

5. 安装fio

如果是mips架构则执行

# ./configure –extra-cflags=”-march=mips64”

其他架构是:

#./configure

编译安装:

# make && make install

 

6. 清理缓存

# sync

# echo 1 > /proc/sys/vm/drop_caches

# echo 2 > /proc/sys/vm/drop_caches

# echo 3 > /proc/sys/vm/drop_caches

# sync

7. 4K写测试:

# fio -filename=/fio_test -direct=1 -iodepth 32 -thread -rw=write -ioengine=libaio -bs=4K -size=5120M -runtime=600 -numjobs=$CPUN -group_reporting -name=./4K_write.result >> ./4K_write.result

// $CPUN更改为CPU核数

8. 清理缓存及测试文件,等待60s

# sync

# echo 1 > /proc/sys/vm/drop_caches

# echo 2 > /proc/sys/vm/drop_caches

# echo 3 > /proc/sys/vm/drop_caches

# sync

# rm /fio_test

# sleep 60s

9. -bs参数分别设置为4K128K1M,将-rw分别设置为readwriterandreadrandwrite,依次进行组合测试。

每次测试完需要执行步骤8清理缓存及测试文件,之后再进行下一次测试。

4.4  内存读写性能stream测试

4.4.1  测试目的

stream工具验证操作系统内存读写性能。

 

4.4.1  预置条件

1. 准备好performance测试工具

2. 系统已安装 gcc  make

 

4.4.2  自动测试步骤

1. 脚本参数说明

-s server_performance 服务器性能测试,array_size=80000000 ntimes=100

array_size 自定义测试数组元素数 Array size

-ntimes 自定义测试次数 NTIMES (默认测试100次取最优值)

 

2. test_opt.h测试参数设置

STREAM_VERSION stream工具版本

STREAM_TESTNUM 测试次数,默认1

STREAM_NTIMES 编译参数ntimes,默认100

STREAM_SIZE 编译参数 array_size , 默认80000000

STREAM_CPU 测试线程数,默认测试机满线程

3. 执行测试

# bash stream.sh -s

 

4.4.3  手动测试步骤

1. 解压stream工具stream-5.9-1.tar.bz2

# tar xvf stream-5.9-1.tar.bz2

2. 进入到解压目录执行编译:

# cd stream-5.9-1

# make clean

# make SET=TRUE N=80000000 NTIMES=100

3. 清除缓存:

# sync

# echo 3 > /proc/sys/vm/drop_caches

# sleep 10s

4. 同时运行单线程和多线程测试

#./Run.sh -n 1 -n 64

//CPU核数为64,则多线程数为64

 

或者直接运行编译好的stream

# ./stream > ./O2_1.result

# ./stream_O3 > ./O3_1.result

# export OMP_NUM_THREADS=64   //cpu核数是64,则设置为64

# ./stream_mu > ./O2_64.result

# ./stream_mu_O3 > ./O3_64.result

4.5  系统综合性能lmbench测试

4.5.1  测试目的

使用lmbench验证系统综合性能

 

4.5.1  预置条件

1. 准备好performance测试工具

2. 安装rpcbind包并启动portmap服务:

# sudo yum -y install rpcbind

# service rpcbind start

 

4.5.2  自动测试步骤

1. 脚本参数说明

-s server_performance 服务器性能测试

 

2. test_opt.h测试参数设置

LMBENCH_VERSION lmbench工具版本

LMBENCH_TESTMEM 测试内存,服务器限制最大测试16384M

3. 执行测试

# bash lmbench.sh -s

 

4.5.3  手动测试步骤

1. 解压lmbench测试工具包:

# tar xvf lmbench-3.0-a9-1.tar.gz

2. 修改文件(若为x86架构则跳过这步):

# sed -i ‘s/arm/aarch/’ scripts/gnu-os

3. 修改lmbench/src/lib_mem.c文件中line_initialize函数(第367行),修改为long i, j, nlines, npages

4. 拷贝配置文件到lmbenchscripts目录:

配置文件包括:

script目录下的config-run os

config目录下的 lmbench.config.desktop

将拷贝后的lmbench.config.desktop改名为lmbench.config

scripts赋执行权限;

# chmod 777 –R scripts

 

5. 若内存大于24GB,则将lmbench.config17行“TESTMP=$MB”修改为“TESTMP=16384”,或根据用例设置为其他值,要大于4倍缓存;

6. 进入到lmbench目录下,

若是arm架构机器执行:

# sed -i ‘s/arm/aarch/’ scripts/gnu-os

7. 清除缓存:

# sync

# echo 3 > /proc/sys/vm/drop_caches

8. 执行测试:

# make results

//若测试多次,则重复步骤7-8

9. 测试完成后,进入./results/**-linux-gnu文件夹中,执行:

# sed -i /\/dev\/tty: /d’ `ls ./`

# sed -i ‘/\[net:/d’ `ls ./`

# sed -i ‘/\[if:/d’ `ls ./`

# sed -i ‘/\[mount:/d’ `ls ./`

10. make see  查看结果。

进入到lmbench目录下

# make see

结果存放在results/summary.out

4.6  硬盘读写性能iozone测试

4.6.1  测试目的

使用iozone验证系统硬盘读写性能

 

4.6.1  预置条件

1 准备好performance测试工具;

2. 可用磁盘空间大于2倍内存

3 若运行2倍内存自动测试,即脚本参数选择为m2testserver_performance时,需要使内存小于64GB

若内存大于64GB建议修改内存为64GB或拔掉多出的内存条再测试:

1)备份: cp /boot/efi/EFI/kylin/grub.cfg /boot/efi/EFI/kylin/grub.cfg.bak

2)获取修改行号: cat -n /boot/efi/EFI/kylin/grub.cfg |grep \`uname -r\`|grep \”root=\”

3)修改grub.cfg 的从第二步获取的行,增加mem=62464M

修改: vim /boot/efi/EFI/kylin/grub.cfg

例:原– linux /vmlinuz-4.19.90-21.2.ky10.x86_64 root=/dev/mapper/klas-root ro crashkernel=auto resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet quiet crashkernel=512M

– linux /vmlinuz-4.19.90-21.2.ky10.x86_64 root=/dev/mapper/klas-root ro crashkernel=auto  mem=62464M resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet quiet crashkernel=512M

4)重启 reboot进行测试

5)注意测试完成后恢复grub.cfg

# mv /boot/efi/EFI/kylin/grub.cfg.bak /boot/efi/EFI/kylin/grub.cfg

 

4.6.2  自动测试步骤

1. 脚本参数说明

-s server_performance 服务器性能测试(2倍内存,块大小从64K16M

-d  desktop_performance 桌面性能测试(块大小16M-s参数分别为内存的0.5倍,1倍,2倍)

uos uos系统测试

m2test 2倍内存,块大小从64K16M

64kt4 -s 1g –r 64k –t4 –i 0 –i 1

64kt1 -s 1g –r 64k –i 0 –i 1

 

2. test_opt.h测试参数设置

IOZONE_VERSION iozone工具版本

IOZONE_TESTPATH 测试路径,默认/iozone

IOZONE_TESTNUM 测试次数,默认测1

IOZONE_TEST_Y -s参数时测试块范围最小值,默认64K

IOZONE_TEST_Q -s参数时测试块范围最大值,默认16M

IOZONE_TEST_N -s参数时测试文件范围最小值,默认2倍内存

IOZONE_TEST_G -s参数时测试文件范围最大值,默认2倍内存

3. 执行测试

# bash iozone.sh –d

一般测试-d情况较多

 

4.6.3  手动测试步骤

1. 检查/usr/include/asm是否存在,若不存在则建立软链接:

# ln -s /usr/include/asm-generic /usr/include/asm

2. 解压iozone测试工具:

# tar xvf iozone3_430.tar

3. 进入iozone目录下src/current路径,进行编译:

# cd iozone3_430/src/current

arm架构中执行:

# make linux-arm

x86架构中执行:

# make linux-AMD64

龙芯架构中执行:

# make linux

loongarch架构中执行:

# make linux-ia64

申威架构执行:

# make linux-ia64

4. 分别设置iozone测试大小为物理内存大小的2倍,1倍,1/2倍大小,3组测试分别执行:

假设整机物理内存64G,执行测试中根据实际情况修改-s参数

2倍内存:

# sync

# echo 3 > /proc/sys/vm/drop_caches

# ./iozone -i 0 -i 1  -i 2 -f /iozonetest -r 16M -s 128G -Rb /results/iozone/iozoneresult2.xls

1倍内存:

# sync

# echo 3 > /proc/sys/vm/drop_caches

# ./iozone -i 0 -i 1  -i 2 -f /iozonetest -r 16M -s 64G  -Rb /results/iozone/iozoneresult1.xls

0.5倍内存:

# sync

# echo 3 > /proc/sys/vm/drop_caches

# ./iozone -i 0 -i 1  -i 2 -f /iozonetest -r 16M -s 32G  -Rb /results/iozone/iozoneresult0_5.xls

// 注:-f参数指定测试文件的名字,测试完成后会自动删除。同时,这个文件必须指定在你要测试的那个硬盘里,所以,在要测试的硬盘里找个大于2倍内存的分区,一般是/分区,或者是data分区,如/iozonetest

4.7  java性能测试specjvm

4.7.1  测试目的

验证JAVA性能

 

4.7.1  预置条件

1. 准备java虚拟机相关安装包SPECjvm2008.jar

2. 安装相关软件包:java-1.8.0-openjdk-devel

3. java不为1.7,则需替换/usr/下所有ct.sym文件

 

4.7.2  自动测试步骤

1. 脚本参数说明

base 默认测试运行方式,系统统一配置测试全部子项的分

peak 测试配置各不相同的分,系统每个子项独立调优

all basepeak都测试

2. test_opt.h测试参数设置

3. 执行测试

# bash specjvm.sh all

 

4.7.3  手动测试步骤

1. 使用yum源安装java环境,操作命令:

# yum install -y  java-1.8.0-openjdk-devel

申威架构的Java包名称与其他架构不同

# yum install -y java-1.8.0-swjdk-devel

 

2. 配置环境变量,执行下面操作

# vim /etc/profile

在最底部添加

export JAVA_HOME=/usr/lib/jvm/ java-1.8.0-openjdk-1.8.0.242.b08-1.h5.ky10.x86_64

export JRE_HOME=/usr/lib/jvm/ java-1.8.0-openjdk-1.8.0.242.b08-1.h5.ky10.x86_64/jre

 

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存成功后,为保证环境变量有效,执行操作:

# source /etc/profile  

执行下面命令,检查是否生效,操作命令:

# echo $JAVA_HOME

# echo $CLASSPATH

# echo $PATH

3. 切换Java环境,执行下面命令,按命令提示操作即可,操作命令:

# update-alternatives –config java

4. 替换ct.sym,因startup.compiler.sunflow项在Java 8中已停止支持,故需要将Java7中的ct.sym文件替换Java8中的ct.sym文件。执行步骤如下:

# cp ct.sym /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/lib

ct.sym放置在config/specjvm目录下

5. 工具安装,操作命令:

# java -jar SPECjvm2008_1_01_setup.jar -i console

下面提示点ENTER键继续,记录安装过程中设置的安装目录(默认目录/SPECjvm2008)。

6. 清除缓存:

# sync

# echo 3 > /proc/sys/vm/drop_caches

7. 执行测试,需要先进入工具安装目录。

base测试操作命令:

# java -jar SPECjvm2008.jar -ikv -base

peak测试操作命令:

# java -Xms1024m -Xmx1024m -jar SPECjvm2008.jar -ikv -peak -Dspecjvm.benchmark.threads=CPU核数

java  -jar  SPECjvm2008.jar -ikv

//-Xmx-Dspecjvm.benchmark.threads的值可根据实际情况更改,一般-Xmx设置为内存的2/3大小,-Dspecjvm.benchmark.threads设置为cpu核数)

8. 测试完成后结果存放在安装目录的results

4.8  整型及浮点型计算性能speccpu测试

4.8.1  测试目的

测试操作系统整型及浮点型计算性能。

 

4.8.1  预置条件

1 准备performance测试工具;

2. 64位环境中,需要为每个copy保留2GB及以上空闲物理内存。由于测试单线程和满线程,所以需要保证机器空闲物理内存大于或等于cpu线程数2倍(CPU线程数64空闲内存要大于等于128G);

3. speccpu需要为每个线程预留23G的磁盘空间,所以speccpu工具所在分区空闲空间需要大于或等于cpu线程数3倍(CPU线程64空闲磁盘空间要大于等于192G);

4. 安装gccgcc-c++gcc-gfortran

MIPS架构需要额外安装libstdc++-static libstdc++ libgfortran libgfortran-static 

X86架构需要额外安装libnsl

loongarch和申威架构需要额外安装libgfortran-static glibc-static libstdc++-static

 

4.8.2  自动测试步骤

1. 脚本参数说明

s server_performance 服务器speccpu性能测试

2. test_opt.h测试参数设置

SPECCPU_VERSION speccpu工具版本。

SPECCPU_TESTCPU 多线程测试的线程数,默认是机器满线程

SPECCPU_TESTNU 测试次数,默认是1

3. 执行测试

# bash speccpu.sh –s

 

4.8.3  手动测试步骤

 

1. speccpu2006测试工具包解压到 /home目录,操作命令:

# tar -xvf speccpu2006-v1.0.1-new-0609.tar -C /home

2. 对解压后的工具包所有文件赋予执行权限,操作命令:

# chmod  -R a+x  /home/speccpu2006-v1.0.1

3. 修改文件:

tools/src/buildtools 更改export LD_LIBRARY_PATH DYLD_LIBRARY_PATH export PERLFLAGS=”-A libs=-lm -A libs=-ldl”  

# sed -i ‘s/export LD_LIBRARY_PATH DYLD_LIBRARY_PATH/export PERLFLAGS=”-A libs=-lm -A libs=-ldl”/’ /home/speccpu2006-v1.0.1/tools/src/buildtools

tools/src/buildtools更改CONFIGFLAGS=”–disable-nls $CONFIGFLAGS” CONFIGFLAGS=”–build=mips64el –disable-nls $CONFIGFLAGS”

# sed -i ‘s/CONFIGFLAGS=”–disable-nls $CONFIGFLAGS”/CONFIGFLAGS=”–build=mips64el –disable-nls $CONFIGFLAGS”/’ /home/speccpu2006-v1.0.1/tools/src/buildtools

tools/src/make-3.80/glob/glob.h#define GLOB_H后添加#define __alloca alloca

# n=`cat -n /home/speccpu2006-v1.0.1/tools/src/make-3.80/glob/glob.h |grep “#define”|grep “GLOB_H”|awk ‘{print $1}’`

# a=`sed -e $n\a”#define __alloca alloca” /home/speccpu2006-v1.0.1/tools/src/make-3.80/glob/glob.h`

# echo “$a” >/home/speccpu2006-v1.0.1/tools/src/make-3.80/glob/glob.h

若是mips架构则执行:# ln -s  /usr/lib64/libgfortran.so.5.0.0 /usr/lib64/libgfortran.so

若是loongarch架构则config/speccpu目录下的loongarch64-linux拷贝到/home/speccpu2006-v1.0.1/tools/bin

若是申威架构则config/speccpu目录下的sw_64linux拷贝到/home/speccpu2006-v1.0.1/tools/bin

4 安装speccpu2006

# ./install.sh    //在弹出的提示信息中,选择yes回车

5 替换cfg文件:

若为arm架构,则将config/speccpu中的arm64-fix.cfg拷贝至/home/speccpu2006-v1.0.1/config,并改名为arm64.cfg

若为x86架构,则将config/speccpu中的x86-fix.cfg拷贝至/home/speccpu2006-v1.0.1/config,并改名为x86.cfg

若为mips架构,则将config/speccpu中的mips-fix.cfg拷贝至/home/speccpu2006-v1.0.1/config,并改名为mips.cfg

若为loongarch64架构,则config/speccpu中的loongarch-fix.cfg拷贝到/home/speccpu2006-v1.0.1/config

若为申威架构,则config/speccpu中的swgcc710-base-O2.cfg拷贝到/home/speccpu2006-v1.0.1/config

 

6 加载环境变量:

#source ./shrc

7 检查SPEC CPU2006是否安装成功

# runspec -V

9. 选择相应配置文件进行测试:

arm平台:

# runspec c arm64.cfg -n 1 all

# runspec c arm64.cfg -r N -n 1 all    

// NCPU核数一致,根据台式机或服务器的核数去指定多线程N值;-n 指定测试轮数;all代表浮点和整型参数都测试

x86_64平台:

# runspec c x86.cfg -n 1 all

# runspec c x86.cfg -r N -n 1 all        

mips平台:

# runspec -c mips.cfg -n 1 all

# runspec -c mips.cfg -r N -n 1 all

loongarch平台:

# runspec -c loongarch-fix.cfg -n 1 all

# runspec -c loongarch-fix.cfg -r N -n 1 all

申威平台:

# runspec -c swgcc710-base-O2.cfg -n 1 all

# runspec -c swgcc710-base-O2.cfg -r N -n 1 all

 

// 注:以上测试方法为节省时间仅执行了一次(指定了-n 1)最终导致结果文件中不会自动计算总分,请自行使用excelgeomean公式计算总分,若测试时间充裕请将命令中“-n 1”删除后执行测试。

10. 结果存放在/home/speccpu2006-v1.0.1/result中,分别统计单线浮点、单线整型、多线浮点、多线整型分数。

5. 稳定性测试

5  

5.1  LTP工具测试系统稳定性

5.1.1  测试目的

验证系统稳定性

 

5.1.1  预置条件

1. 准备performance测试工具包

 

5.1.2  自动测试步骤

1. 脚本参数说明

insltp 安装ltp

cleanlog 清理系统日志

cleandir 清理LTP安装文件夹及解压出的文件夹

cleanresutls <arg> 清理参数指定的日志文件,参数缺省时会清理所有的运

行日志文件

stress <time> 运行压力测试

 

2. 执行测试

# bash ltp.sh stress 48

//可根据测试用例调整测试时间

 

5.1.3  手动测试步骤

1. 解压ltp并执行编译:

申威架构使用ltp-3231-256.tar.gz,并且无需编译安装,可以直接解压使用。其他架构需要执行步骤1234

 

# tar -xvf ltp-full-20200515.tar.bz2

# cd ltp-full-20200515

arm架构执行:

# ./configure –build=arm-linux with-realtime-testsuite –with-open-posix-testsuite

x86架构执行:

# ./configure with-realtime-testsuite –with-open-posix-testsuite

mips架构执行:

# ./configure –build=mips64el with-realtime-testsuite –with-open-posix-testsuite loongarch64架构执行:

# ./configure –build=mips with-realtime-testsuite –with-open-posix-testsuite

2. 进行安装:

loongarch架构执行:

# make all -j 8

# make install -j 8

其他架构执行:

# make

# make install

3. 拷贝相关测试文件至如下路径:

文件存放在performanceconfig/ltpscript/ltp目录下

# cp ltpstress20200515.sh /opt/ltp/testscripts

# cp stress.part1 /opt/ltp/runtest

# cp stress.part2 /opt/ltp/runtest

# cp stress.part3 /opt/ltp/runtest

# cp lvm.part1 /opt/ltp/runtest

# cp lvm.part2 /opt/ltp/runtest

# cp quickhit /opt/ltp/runtest

# cp kylin_smoketest /opt/ltp/runtest

# cp kylin_smoketest_server /opt/ltp/runtest

 

# chmod a+rx /opt/ltp/testscripts/ltpstress20200515.sh

 

4. 设置环境变量

编辑/etc/profile在最后添加如下内容

export LTPROOT=/opt/ltp

export PATH=$LTPROOT/testcases/bin:$PATH

加载/etc/profile,使配置生效

# source /etc/profile

5. 执行稳定性测试:

申威架构执行命令:

# cd /opt/ltp/testscripts

#  ./ltpstress 48 &> /opt/ltp/stress.log

其他架构执行命令:

# cd /opt/ltp/testscripts

# ./ltpstress20200515.sh -n -p -t 72 -l /opt/ltp/ltpstress.result

// 注: -t 72表示测试时间72小时