博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fio硬盘压力测试
阅读量:6495 次
发布时间:2019-06-24

本文共 3739 字,大约阅读时间需要 12 分钟。

fio测试工具支持同步(pread/pwrite)和异步(libaio)FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。  

fio 官网地址:

安装

yum -y install libaio libaio-devel wget http://brick.kernel.dk/snaps/fio-2.1.7.tar.bz2 tar xf fio-2.1.7.tar.bz2cd fio-2.1.7/ ./configure  make -j10make install

二,测试案例介绍: 
##############################  同步i/o   ##################################################################3 
#同步i/o、顺序读: 
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=read-psync >read-psync.txt 
#同步i/o、顺序写: 
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=write-psync >write-psync.txt 
#同步i/o、顺序混合读写: 
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=readwrite -rwmixread=50 -ioengine=psync -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=rw-readwrite rw-readwrite-psync.txt
#同步i/o、随机读:  
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=randread-psync >randread-psync.txt 
#同步i/o、随机写:  
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=randwrite-psync >randwrite-psync.txt 
#同步i/o、随机混合读写:  
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=50 -ioengine=psync -bs=16k -size=50G -numjobs=30 -runtime=100 -group_reporting -ioscheduler=noop -name=randrw-psync >randrw-psync.txt  
 
##############################  异步 i/o   ##################################################################3 
 #异步 i/o、顺序读:  
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=read -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=read-libaio >read-libaio.txt 
#异步 i/o、顺序写: 
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=write -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=write-libaio >write-libaio.txt 
#异步 i/o、顺序混合读写: 
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=readwrite -rwmixread=50 -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=rw-readwrite-libaio >rw-readwrite-psync.txt 
#异步 i/o、随机读:  
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=randread-libaio >randread-libaio.txt 
#异步 i/o、随机写:  
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=randwrite-libaio >randwrite-libaio.txt 
#异步 i/o、随机混合读写:  
fio -filename=/dev/rbd2 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=50 -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=100 -group_reporting -ioscheduler=noop -name=randrw-libaio >randrw-libaio.txt  
说明:  
filename=/dev/rbd2 测试文件名称,需要测试的盘的某目录。  
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。  
read 顺序读 
write 顺序写 
randwrite 随机写 
randread 随机读 
rw,readwrite 顺序混合读写 
randrw 随机混合读写 
bs=16k 单次io的块文件大小为16k  
bsrange=512-2048 同上,提定数据块的大小范围  
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。  
numjobs=30 本次的测试线程为30.  
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。  
ioengine=psync io引擎使用pync方式  
rwmixread=30  在混合读写的模式下,读占30% ,默认%50,两个参数同时使用,后者覆盖第一 
rwmixwrite=30 在混合读写的模式下,写占30% ,默认%50 
group_reporting 关于显示结果的,汇总每个进程的信息。  
lockmem=1g 只使用1g内存进行测试。  
zero_buffers 用0初始化系统buffer。  
nrfiles=8 每个进程生成文件的数量。  
ioscheduler 尝试切换设备托管文件指定的I / O调度器。 
psync  同步i/o测试 
libaio  异步i/o测试 
libaio的读写过程简单说来就是你发出一个读写请求,然后你可以开始做其他事情,当读写过程结束时libaio会通知你你的这次请求已经完成 

 

转载于:https://www.cnblogs.com/cptao/p/10913078.html

你可能感兴趣的文章
1.1GTK+ 的简单程序HelloWorld
查看>>
一款基jquery超炫的动画导航菜单
查看>>
stm32时钟树讲解
查看>>
CSDN - 进程结束后new出的内存会回收吗?
查看>>
搭建Mantis 缺陷管理系统(转)
查看>>
一款基于jquery和css3的响应式二级导航菜单
查看>>
JMeter学习(二十三)关联
查看>>
【leetcode】Best Time to Buy and Sell 3 (hard) 自己做出来了 但别人的更好
查看>>
通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
查看>>
sdut AOE网上的关键路径(spfa+前向星)
查看>>
C++编程思想重点笔记(上)
查看>>
【转发】什么时候该用委托,为什么要用委托,委托有什么好处
查看>>
[原]VS2012编译GLEW 1.11
查看>>
[AngularJS] Hijacking Existing HTML Attributes with Angular Directives
查看>>
关于android.view.WindowLeaked(窗体泄露)的解决方案
查看>>
微软职位内部推荐-Software Engineer II-News
查看>>
(转)I 帧和 IDR 帧的区别
查看>>
如何更快速加载你的JS页面
查看>>
解决oracle11g安装导致数据库无法自动搜集统计信息-转
查看>>
Unix_Linux系统定时器的应用(案例)
查看>>