linux性能测试相关工具及使用方式

1.fio

安装:
tar zxvf fio-2.2.5.tar.gz
cd fio-2.2.5
./configure
make
make install

用法:
随机读
fio -filename=/tmp/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

随机写:
sudo fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=512M --numjobs=2 --runtime=240 --group_reporting
读写性能测试:
sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

说明:
filename=/dev/sdb1       测试文件名称,通常选择需要测试的盘的data目录。
direct=1                 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite             测试随机写的I/O
rw=randrw                测试随机写和读的I/O
bs=16k                   单次io的块文件大小为16k
bsrange=512-2048         同上,提定数据块的大小范围
size=5g    本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30               本次的测试线程为30.
runtime=1000            测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync           io引擎使用pync方式
rwmixwrite=30            在混合读写的模式下,写占30%
group_reporting          关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g               只使用1g内存进行测试。
zero_buffers             用0初始化系统buffer。
nrfiles=8                每个进程生成文件的数量。

结果分析:
io总的输入输出量 
bw:带宽   KB/s 
iops:每秒钟的IO数
runt:总运行时间
lat (msec):延迟(毫秒)
msec: 毫秒
usec: 微秒

2.iozone

安装:

tar xvf iozone3_430.tar     #解压(注意不要有中文名目录)
cd iozone3_430/src/current/   #进入安装目录
make linux     #安装
使用:
cd /home/iozone3_430/src/current
./iozone -a -i 0 -i 1 -i 2 -f /home/hdd/testfile -r 16m -s 8G | tee -a iozone1.log
#设置大小为物理内存的一半;存放到iozone1.log下查看

备注:各参数的含义

-a #全面测试

-i #指定运行于哪种模式测试。可以使用-i # -i # -i #进行多个测试

0=write/rewrite

1=read/re-read

2=random read/random write

-f #指定用来测试的临时文件,测试完后会自动删除

-r #设置测试文件的块大小

-s #设置测试文件的大小,要求为物理内存的1/2,1倍,2倍

-I #直接IO,可排除掉缓存的影响,直接对硬盘读写
结果查看:

/iozone3_430/src/current目录下的iozone1.log

3.stream

----------解压到目录:
----------编译
单线程编译:
# gcc -mtune=native -march=native -O3 -mcmodel=medium -DSTREAM_ARRAY_SIZE=200000000 -DNTIMES=30 stream.c -o stream.o
多线程编译:
# gcc -mtune=native -march=native -O3 -mcmodel=medium  -fopenmp -DSTREAM_ARRAY_SIZE=8000000 -DNTIMES=30 stream.c -o stream.o
上述多线程编译参数含义如下
-mtune=native -march=native:针对CPU指令的优化,此处由于编译机即运行机器。故采用native的优化方法。使用-mtune =native将在所选指令集的约束下生成针对本地计算机优化的代码。使用-march =native将启用本地计算机支持的所有指令子集(因此结果可能无法在其他计算机上运行)
-O3:编译器编译优化级别
-mcmodel=medium:当单个Memory Array Size 大于2GB时需要设置此参数(小于2GB时也可保留这个参数,此时这个参数不生效)
-fopenmp:适应多处理器环境;开启后,程序默认线程为CPU线程数
-DSTREAM_ARRAY_SIZE=8000000:这个参数是对测试结果影响最大,也是最需要关注的一个参数,它用来指定计算中a[],b[],c[]数组的大小,它的值不能太大,也不能太小,太大的话,会延长测试时长并影响测试准确性甚至执行测试失败,太小的话,CPU Cache会干扰测试结果,不能测试出真实的内存带宽。要确定合适的size值,首先要使用cat /sys/devices/system/cpu/cpu0/cache/index3/size命令查看测试机的三级缓存,假如测试机配置为4C8G,cpu拓扑为socket=1,core=2,thread=2,查到的三级缓存为16384K也就是16MB,那么size应该设置为(1socket * 16MB/socket * 1000 * 1000) * 4 / 8B = 8000000,乘以4是因为官方建议size是三级缓存的四倍,除以8是因为STREAM_ARRAY_SIZE为double类型,每个double类型占用8Byte。
-DNTIMES=30:执行的次数,并且从这些结果中选最优值
----------编译后执行测试
# ./stream.o 
注:如果重复进行测试,则再次测试前需执行以下命令,用以删除所有类型的IPC对象,包括共享内存段、消息队列和信号量,它会移除系统中的所有IPC对象,并释放相应资源
# ipcrm --all

4.glmark2

1、搭建编译环境
sudo apt-get install g++ build-essential pkg-config
sudo apt-get install libx11-dev libgl1-mesa-dev
sudo apt-get install libjpeg-dev libpng-dev

2、目录下执行命令安装:
./waf configure --with-flavors=x11-gl
./waf build -j 8(CPU核数)
sudo ./waf install

3、输入glmark2

5.netperf

1、拷贝netperf到两台电脑(1台做服务端,1台做客户端,两台机器通过网线直连),并解压,输入命令:tar -zxvf netperf-2.7.0.tar.gz;
2、在两台电脑上安装netperf,输入命令:
#./configure --build=alpha64
#make && make install
3、server端关闭防火墙
#systemctl stop firewalld
4、服务端启动netserver服务,输入命令:
#netserver
5、在client端执行测试,输入命令:(server和client端需要处于同一网段)
(1)netperf -t TCP_STREAM -H  192.168.1.1 -l 60
(2)netperf -t TCP_RR -H  192.168.1.1 -l 60
(3)netperf -t UDP_STREAM -H  192.168.1.1 -l 60
(4)netperf -t UDP_RR -H  192.168.1.1 -l 60

6.unixbench

解压

Run文件目录下 输入make执行

./Run运行

7.lmbench

lmbench3.0目录下

#make results 执行

#make see 查看测试结果

#cd results

#make ps   将测试结果生成为图片

#cd ./PS

#evinces PS 查看测试结果图像

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值