感谢支持
我们一直在努力

Linux下 fio磁盘压测实录

专业的测试磁盘IO性能的软件:

1、fio 【推荐使用】

2、iometer

fio的使用:

参考

http://www.linuxidc.com/Linux/2017-04/143255.htm

http://www.linuxidc.com/Linux/2017-04/143251.htm

注意,我先使用yum安装的fio,测试时候报错,建议使用最新版的fio工具编译安装。方法如下:

yum install libaio libaio-devel   需要先安装2个包

新版的 fio-2.1.4 源码包下载 http://brick.kernel.dk/snaps/  

tar xf fio-2.1.4.tar.gz

cd fio-2.1.4

./configure

make  即可在当前目录下生成fio可执行文件。

fio的几个参数:

filename=/bdata/test.big 测试文件名称,通常选择需要测试的盘所在的目录。

direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。

rw=randwrite 测试随机写的I/O

rw=randrw 测试随机写和读的I/O

bs=4k 单次io的块文件大小为4k

size=2g 本次的测试文件大小为2g,以每次4k的io进行测试。

numjobs=64 本次的测试线程为64.   【建议设置为CPU的CORE数量一致】

runtime=20 测试时间为20秒,如果不写则一直将2g文件分4k每次写完为止。

ioengine=psync io引擎使用pync方式 ,此外还有libaio 异步方式。

rwmixwrite=30 在混合读写的模式下,写占30%

group_reporting 关于显示结果的,汇总每个进程的信息。

sync=1 设置异步io

fsync=1 一个io就同步数据

帮助命令: 

fio –help 

fio –cmdhelp 等等

# 准备个2GB的测试用的文件

dd if=/dev/zero of=/bdata/test.big bs=4k count=524288    # 通常在需要测试的那个磁盘下面生成一个这种测试用的大文件 

测试随机读写:

fio –filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write

测试顺序读取:

fio –filename=/bdata/test.big -iodepth=64 -ioengine=libaio –direct=1 –rw=read –bs=1m –size=2g –numjobs=4 –runtime=10 –group_reporting –name=test-read

测试顺序写性能

fio –filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=write -bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write

测试随机读:

fio –filename=/root/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-read

测试随机写:

fio –filename=/root/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write

采用同步IO的随机写:

fio –filename=/root/rndwrite -iodepth=64 -ioengine=psync -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=32 -runtime=20 -group_reporting -name=test-rand-write 

其他: 

# 4k,100%读写:

fio –filename=/dev/sdx –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=4k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60 –group_reporting –name=4ktest

# 8k,70%读取,30%写入:

fio –filename=/dev/sdx –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=8k –rwmixread=70 –iodepth=16 –numjobs=16 –runtime=60 –group_reporting –name=8k7030test

在阿里云SSD测试时候,使用libaio方式能达到较高的IOPS,使用psync的话,IOPS下降的很严重。从网上其他测试数据来看,异步的libaio比同步的psync方式性能高15倍左右。

附带一个MySQL DELL物理机的测试情况:

1 aio异步模式随机写入5G数据

测试命令:

fio –filename=/root/rndwrite -iodepth=64-ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=5G -numjobs=64-runtime=20 -group_reporting -name=test-rand-write

Samsung SSD 750 EVO 500GB盘为例,测试截图

wKiom1kCo9eSPylIAAPC4aAhc_w142.png

2 psync同步模式随机写入5G数据

测试命令:

fio –filename=/root/rndwrite -iodepth=64-ioengine=psync -direct=1 -rw=randwrite -bs=4k -size=5G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write

10.0.36.4 Samsung SSD 750 EVO 500GB盘为例,测试截图

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143258.htm

赞(0) 打赏
转载请注明出处:服务器评测 » Linux下 fio磁盘压测实录
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏