FIO是测试IOPS
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
安装
- 下载地址
wget http://brick.kernel.dk/snaps/fio-2.1.10.tar.gz - centos
- yun install libaio-devel -y
- debian
- apt-get install libaio-dev -y
- 编译安装
tar zxf fio-2.1.10.tar.gzcd fio-2.1.10make && make install
用法、说明
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 每个进程生成文件的数量。
顺序写性能
fio --filename=/data/test --iodepth=64 --ioengine=libaio --direct=1 --rw=write --bs=4k --size=500m --numjobs=4 --runtime=10 --group_reporting --name=test-write顺序读性能
fio --filename=/data/test --iodepth=64 --ioengine=libaio --direct=1 --rw=read --bs=4k --size=500m --numjobs=4 --runtime=10 --group_reporting --name=test-read随机读性能
fio --filename=/data/test -iodepth=64 --ioengine=libaio --direct=1 --rw=randread --bs=4k --size=500M --numjobs=64 --runtime=20 --group_reporting --name=test-rand-read随机写性能
fio --filename=/data/test --iodepth=64 --ioengine=libaio --direct=1 --rw=randwrite --bs=4k --size=500M --numjobs=64 --runtime=20 --group_reporting --name=test-rand-write随机读写
fio --filename=/data/test --iodepth=64 --ioengine=libaio --direct=1 --rw=randrw --bs=4k --size=500M --numjobs=64 --runtime=20 --group_reporting --name=test-rand-readwrite
ucloud实际测试样例
[root@leoieo # fio --filename=/data/test --iodepth=64 --ioengine=libaio --direct=1 --rw=randrw --bs=4k --size=500M --numjobs=64 --runtime=20 --group_reporting --name=test-rand-readwrite
test-rand-readwrite: (g=0): rw=randrw, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
...
test-rand-readwrite: (g=0): rw=randrw, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio 2.0.7
Starting 64 processes
test-rand-readwrite: Laying out IO file(s) (1 file(s) / 500MB)
Jobs: 64 (f=64):
.....
test-rand-readwrite: (groupid=0, jobs=64): err= 0: pid=27106
read : io=1254.7MB, bw=63827KB/s, iops=15956 , runt= 20128msec
slat (usec): min=2 , max=362246 , avg=1939.96, stdev=20054.83
clat (usec): min=11 , max=822072 , avg=114432.56, stdev=116574.10
lat (usec): min=41 , max=822081 , avg=116375.98, stdev=117044.89
clat percentiles (usec):
| 1.00th=[ 418], 5.00th=[ 604], 10.00th=[ 692], 20.00th=[ 828],
| 30.00th=[ 1048], 40.00th=[ 3120], 50.00th=[98816], 60.00th=[115200],
| 70.00th=[205824], 80.00th=[246784], 90.00th=[288768], 95.00th=[296960],
| 99.00th=[317440], 99.50th=[411648], 99.90th=[528384], 99.95th=[577536],
| 99.99th=[618496]
bw (KB/s) : min= 149, max= 2782, per=1.58%, avg=1011.31, stdev=501.25
write: io=1253.0MB, bw=63746KB/s, iops=15936 , runt= 20128msec
slat (usec): min=3 , max=370177 , avg=1946.49, stdev=20060.74
clat (usec): min=10 , max=822032 , avg=136414.77, stdev=118302.48
lat (usec): min=346 , max=894660 , avg=138365.58, stdev=119001.95
clat percentiles (usec):
| 1.00th=[ 636], 5.00th=[ 748], 10.00th=[ 836], 20.00th=[ 1048],
| 30.00th=[ 2864], 40.00th=[96768], 50.00th=[111104], 60.00th=[162816],
| 70.00th=[222208], 80.00th=[276480], 90.00th=[292864], 95.00th=[301056],
| 99.00th=[378880], 99.50th=[501760], 99.90th=[577536], 99.95th=[593920],
| 99.99th=[692224]
bw (KB/s) : min= 30, max= 2778, per=1.58%, avg=1007.37, stdev=499.86
lat (usec) : 20=0.01%, 50=0.01%, 100=0.01%, 250=0.12%, 500=0.76%
lat (usec) : 750=8.93%, 1000=13.61%
lat (msec) : 2=10.84%, 4=1.15%, 10=0.84%, 20=0.42%, 50=0.26%
lat (msec) : 100=9.27%, 250=31.68%, 500=21.65%, 750=0.44%, 1000=0.01%
cpu : usr=0.17%, sys=0.62%, ctx=18901, majf=0, minf=1896
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.2%, 32=0.3%, >=64=99.4%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued : total=r=321176/w=320768/d=0, short=r=0/w=0/d=0 Run status group 0 (all jobs):
READ: io=1254.7MB, aggrb=63826KB/s, minb=63826KB/s, maxb=63826KB/s, mint=20128msec, maxt=20128msec
WRITE: io=1253.0MB, aggrb=63745KB/s, minb=63745KB/s, maxb=63745KB/s, mint=20128msec, maxt=20128msec Disk stats (read/write):
vdb: ios=320605/320220, merge=2/27, ticks=437742/1156547, in_queue=1593987, util=98.64%
关于使用dd进行读写测试
- 4k 10万次写
dd if=/dev/zero of=/data/test bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 0.87704 s, 467 MB/s - 4k 10万次读
dd if=/data/test of=/dev/null bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 0.111689 s, 3.7 GB/s - 4k 10万次读写
dd if=/data/test of=/data/test.txt bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 0.776348 s, 528 MB/s
FIO是测试IOPS的更多相关文章
- 使用FIO工具测试块存储性能
Linux实例和Windows实例都推荐使用FIO工具测试块存储性能. 说明 您也可以使用其他工具测试块存储性能,但不同工具测试出来的硬盘基准性能会有差异,如dd.sysbench.iometer ...
- FIO read测试结果偏离
工作中发现一个fio问题,测试组测试出来的数据read速度一个是17.0G/s,一个是13.2G/s.要知道我后台只有24块7.2k RPM的机械硬盘啊!怎么也不可能有这样的速度. 回家之后我模拟了实 ...
- fio 硬盘测试工具
一.windows环境 1. 安装fio:http://www.bluestop.org/fio/ 可以选择不同版本的安装,安装后在C:\Program Files\fio目录中可以找到fio的执行程 ...
- FIO 测试磁盘iops 以及读写
最近在做mariadb的性能,感觉io 有瓶颈,就使用fio 来测试一下磁盘.下文为转载文章(温馨提示:此命令很伤硬盘,测试前请备份数据,- -我就写坏了一个.) FIO 是测试IOPS的非常好的工具 ...
- linux使用FIO测试磁盘的iops 【转载】
linux使用FIO测试磁盘的iops 2013-09-23 10:59:21 分类: LINUX FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括 ...
- linux使用FIO测试磁盘的iops
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, ...
- 使用FIO测试磁盘iops
我们如何衡量一个存储的性能呢?IOPS(Input/Output OperationsPer Second),即每秒进行读写(I/O)操作的次数是国际上通用的存储性能衡量标准,IOPS越高意味着在同一 ...
- FIO测试磁盘的iops
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, ...
- Linux下使用FIO测试磁盘的IOPS
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, ...
随机推荐
- js 的try catch应用
<script language="javascript"> try { throw new Error(10,"asdasdasd") } cat ...
- Topcoder SRM 626 DIV2 SumOfPower
本题就是求所有连续子数列的和 开始拿到题目还以为求的时数列子集的和,认真看到题目才知道是连续子数列 循环遍历即可 int findSum(vector <int> array) { ; ; ...
- 快速搭建IE测试环境(Virtualbox+ievms)
IE下的测试 作为一个有追求的程序员,应该尽可能的远离Windows系统.不论从专业开发者的角度,还是仅仅作为最终用户从使用体验上来说,Windows都可以算是垃圾中的战斗机: 没有shell . 响 ...
- [题解+总结]NOI2015
// 此博文为迁移而来,写于2015年7月20日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6u7.html 1.总 ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- 如何使用Apache的ab工具进行网站性能测试
1.打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 2.在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程 ...
- javascrit2.0完全参考手册(第二版) 第2章第3节 变量
变量存储数据.每个变量都有一个名字,叫做标识符.在js中声明变量使用var关键字,var为新的数据分配存储空间,或者指示一直标识符正在使用.声明变量非常简单: var x; 这个语句告诉解释器一个新的 ...
- jquery中prop()方法和attr()方法的区别浅析
官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该用attr(),什么时候该用prop()呢 jquery1.6中新加了一个方法pr ...
- Android 图片三级缓存
图片缓存的原理 实现图片缓存也不难,需要有相应的cache策略.这里采用 内存-文件-网络 三层cache机制,其中内存缓存包括强引用缓存和软引用缓存(SoftReference),其实网络不算cac ...
- mysql查询缓存参数
由人说mysql查询缓存是鸡肋,也许吧,但还是要看场景: 查询缓存: 开启查询缓存:/etc/my.cnfquery_cache_type=1 重启