最近整理了测试工具的文档 在此记录分享
下载工具可以在这里找:http://hpctest.cs.tsinghua.edu.cn/programs.html
搭建编译环境(多数工具需要编译)
sudo apt-get install git g++ build-essential pkg-config
搭建X11和OpenGL开发环境
sudo apt-get install libx11-dev libgl1-mesa-dev
1、STRESSAPPTEST 内存稳定性测试
2、LTP 压力测试
3、UnixBench 系统综合测试
4、LmBench 文件读写 进程创建销毁
5、Netperf 网络性能测试
6、x11 Perf 图形性能测试
7、fio 硬盘访问测试
8、stress 系统压力测试
9、glxgears 3D加速效果测试
10、stream 内存带宽测试
11、glmark2 嵌入式平台性能测试
12、Iozone3 读写测试
1、STRESSAPPTEST 内存稳定性测试
git clone https://github.com/stressapptest/stressapptest.git
cd stressapptest
./configure
make
make install
cd /src
./stressapptest -s 20 -M 256 -m 8 -C 8 -W -l -v
#-M后是测试内存大小,-s后是测试时间,单位秒。
2、LTP 压力测试
git clone https://github.com/linux-test-project/ltp.git
cd ltp
make auto tools
./configure
make
make install #注意:ltp 的默认安装路径是/opt/ltp,所以接下来的执行测试步骤都需要在/opt/ltp目录下完成
#IDcheck.sh : 检查系统是否缺少执行LTP测试套件所需的用户和用户组,如果缺少则为LTP测试套件创建所需的用户和用户组。
#runltplite.sh : 这个脚本用来测试LTP安装,也可用来对测试套件的子项目进行测试。
#ver_linux : 这个脚本是获取硬件、软件、环境信息。
./runltp -p -l /tmp/resultlog.20111207 -d /tmp -o /tmp/ltpscreen.20111207 -t 24h #初始测试
#压力测试执行default set of tests
cd /opt/ltp #你所安装的ltp的存放目录,默认是/opt/ltp
./runltp -p -l result.log
3、UnixBench 系统综合测试
git clone https://github.com/kdlucas/byte-unixbench
解压UnixBench5.1.3.zip并进入目录
tar xzf byte-unixbench-5.1.3.tar.gz
cd byte-unixbench-5.1.3/UnixBench
执行 ./Run -c 4
参数-c后接的是跑的线程,若跑单线程,则./Run,敲回车即可。
测试结果直接显示在终端,也可以在运行命令后加上测试结果的保存路径来保留测试记录,即
./Run -c 4 >/opt/unixbench-result.txt
4、LmBench 文件读写 进程创建销毁
下载链接:
http://www.bitmover.com/lmbench/get_lmbench.html
tar -xvf lmbench3.tar.gz
cd lmbench3
make results
接下来的设置除了MB(默认值较大,耗时较长或程序运行不起来,取值大于4倍的外部缓存小于80%的物理内存即可)和Mail results(输入no敲回车,意思不发送邮件回执)外都选默认值。
程序运行结束后查看结果:make see
敲回车后提示
cd results && makesummary >summary.out 2>summary.errs
cd results && makepercent >percent.out 2>percent.errs
#cd results
#vi summary.out#查看结果
tar -zxvf lmbench3.tar.gz
cd lmbench3
make
此时会报错:
make[2]: *** 没有规则可以创建“bk.ver”需要的目标“../SCCS/s.ChangeSet”。 停止。
make[2]:正在离开目录 /home/hero/lmbench3/src‘ make[1]: *** [lmbench] 错误 2 make[1]:正在离开目录
/home/hero/lmbench3/src‘
make: *** [build] 错误 2
解决办法:
lmbench3目录下
mkdir SCCS
touch ./SCCS/s.ChangeSet
make
执行make results see查看,一路回车键(除了在Job placement selection: 输入一个1)
5、Netperf 网络性能测试
git clone https://github.com/HewlettPackard/netperf.git
进入目录后编译
运行:2台机器网线直连,分别安装好netperf软件,分别设置好同一网段的IP地址,互相ping通。
1台机器作为服务器端,运行:#netserver
;先运行服务器端,会提示打开xxx端口。
另一台机器作为客户端,运行:
netperf -HserverIP(即服务器端的IP地址) -l time(默认秒为单位)
,默认TCP批量传输,其他模式参数见netperf参数表格。
6、x11 Perf 图形性能测试
安装apt install x11-apps -y
(可以执行apt search x11perf 找到安装包)
会弹出一个窗口,结果显示在终端,也可以在运行命令后加测试结果保存路径来保留测试记录,即
x11perf -all >/opt/x11perf-result.txt
7、fio 硬盘访问测试
wget http://brick.kernel.dk/snaps/fio-2.1.10.tar.gz
tar -xzvf fio-2.1.10.tar
cd fio-2.1.10
./configure
make
make install
fio参数解释:
可以使用fio -help
查看每个参数,具体的参数左右可以在官网查看how to文档
fio测试场景及生成报告详解
测试场景:
100%随机,100%读, 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k
100%随机,100%写, 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100write_4k
100%顺序,100%读 ,4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100read_4k
100%顺序,100%写 ,4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100write_4k
100%随机,70%读,30%写 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=randrw_70read_4k
8、stress 系统压力测试
apt install stress -y
测试CPU负荷:
stress -c 4
增加4个cpu进程,处理sqrt()函数函数,以提高系统CPU负荷
内存测试:
下面的命令产生两个子进程,每个进程分配 300M 内存:
$ stress --vm 2 --vm-bytes 300M --vm-keep
父进程处于睡眠状态,两个子进程负责资源消耗。
--vm-keep
一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)。
--vm-hang N
指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程。
--vm-keep 和 --vm-hang 都可以用来模拟只有少量内存的机器,但是指定它们时 CPU 的使用情况是不一样的。
$ stress --vm 2 --vm-bytes 500M --vm-keep3
磁盘I/O测试
输入命令:stress –d 1 --hdd-bytes 3G
新增1个写进程,每次写3G文件块
4、硬盘测试(不删除)
下面的命令产生 4 个进程,每个进程都反复调用 sync 函数将内存上的内容写到硬盘上:
$ stress -i 4
9、glxgears 3D加速效果测试
apt install mesa-utils
glxinfo |grep rendering
敲回车,提示:direct rendering: Yes 表明启动正常;
glxgears
敲回车,弹出一个窗口,里面有3个转动的齿轮,并且终端每5秒显示出转动多少栅;
记录下FPS数字(每秒的帧速度)以鉴别3D加速效果(FPS越大越好);
结果显示在终端,也可以在运行命令后加测试结果保存路径来保留测试记录,即glxgears>/opt/glx-result.txt
10、stream 内存带宽测试
下载链接:http://www.cs.virginia.edu/stream/FTP/Code/
只需要其中的stream.c /stream.f/mysecond.c/Makefile放入同一文件夹命名为stream
cd stream
gcc -O stream.c -o stream#编译
./stream#执行
11、glmark2 嵌入式平台性能测试
git clone https://github.com/glmark2/glmark2.git
cd glmark2/
./waf configure --with-flavors=x11-gl
./waf build -j 4
./waf install --destdir=glmark2-out
./waf configure --with-flavors=x11-glesv2
./waf build -j 4
./waf install --destdir=glmark2-out
#本机安装,执行./waf install
cd glmark2/build/src
./glmark2
12、Iozone3 读写性能测试
wget http://www.iozone.org/src/current/iozone3_430.tar
tar -xvf iozone3_430.tar
cd /opt/iozone3_430/src/current
make linux
#开始测试
sudo ./iozone -i 0 -i 1 -i 2 -y 4k -q 4096k -f /iozone.tmpfile -Rab /home/ubuntu/iozone3_487/src/report/test-iozone50.xls -s 4G -C
命令参数解释:
i:操作。
1,read/re-read
2,random-read/write
3,Read-backwards
-a -y 4k -q 1024k :表示文件块大小范围,从4KB到1MB持续增长
-g -n:表示测试文件大小范围,若最大测试文件为4G,可以这样写 -g 4G
-f 文件名:指定测试文件的名字,完成后会自动删除
-Rab test-iozone50.xls,指定-a的才能输出wen文件
-R 标准输出为Excel格式
-b 指定输出到指定文件上
-s:表示读写文件的大小
-C:显示每个节点的吞吐量