linux使用FIO测试磁盘的iops

标签: linux fio 测试 | 发表时间:2014-12-20 22:29 | 作者:elf8848
出处:http://www.iteye.com

FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
fio 官网地址: http://freshmeat.net/projects/fio/

一,FIO安装
wget  http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz
yum install libaio-devel
tar -zxvf fio-2.0.7.tar.gz
cd fio-2.0.7
make
make install

二,FIO用法:

随机读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=1000 -group_reporting -name=mytest

说明:
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=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

随机写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

顺序写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

混合随机读写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

 

三,实际测试范例:

[root@localhost ~]# fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest1
mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1

mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1
fio 2.0.7
Starting 30 threads
Jobs: 1 (f=1): [________________m_____________] [3.5% done] [6935K/3116K /s] [423 /190  iops] [eta 48m:20s] s]               
mytest1: (groupid=0, jobs=30): err= 0: pid=23802
  read : io=1853.4MB,  bw=18967KB/s, iops=1185 , runt=100058msec
    clat (usec): min=60 , max=871116 , avg=25227.91, stdev=31653.46
     lat (usec): min=60 , max=871117 , avg=25228.08, stdev=31653.46
    clat percentiles (msec):
     |  1.00th=[    3],  5.00th=[    5], 10.00th=[    6], 20.00th=[    8],
     | 30.00th=[   10], 40.00th=[   12], 50.00th=[   15], 60.00th=[   19],
     | 70.00th=[   26], 80.00th=[   37], 90.00th=[   57], 95.00th=[   79],
     | 99.00th=[  151], 99.50th=[  202], 99.90th=[  338], 99.95th=[  383],
     | 99.99th=[  523]
    bw (KB/s)  : min=   26, max= 1944, per=3.36%, avg=636.84, stdev=189.15
  write: io=803600KB,  bw=8031.4KB/s, iops=501 , runt=100058msec
    clat (usec): min=52 , max=9302 , avg=146.25, stdev=299.17
     lat (usec): min=52 , max=9303 , avg=147.19, stdev=299.17
    clat percentiles (usec):
     |  1.00th=[   62],  5.00th=[   65], 10.00th=[   68], 20.00th=[   74],
     | 30.00th=[   84], 40.00th=[   87], 50.00th=[   89], 60.00th=[   90],
     | 70.00th=[   92], 80.00th=[   97], 90.00th=[  120], 95.00th=[  370],
     | 99.00th=[ 1688], 99.50th=[ 2128], 99.90th=[ 3088], 99.95th=[ 3696],
     | 99.99th=[ 5216]
    bw (KB/s)  : min=   20, max= 1117, per=3.37%, avg=270.27, stdev=133.27
    lat (usec) : 100=24.32%, 250=3.83%, 500=0.33%, 750=0.28%, 1000=0.27%
    lat (msec) : 2=0.64%, 4=3.08%, 10=20.67%, 20=19.90%, 50=17.91%
    lat (msec) : 100=6.87%, 250=1.70%, 500=0.19%, 750=0.01%, 1000=0.01%
  cpu          : usr=1.70%, sys=2.41%, ctx=5237835, majf=0, minf=6344162
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     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.0%, >=64=0.0%
     issued    : total=r=118612/w=50225/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=1853.4MB, aggrb=18966KB/s, minb=18966KB/s, maxb=18966KB/s, mint=100058msec, maxt=100058msec
  WRITE: io=803600KB, aggrb=8031KB/s, minb=8031KB/s, maxb=8031KB/s, mint=100058msec, maxt=100058msec

Disk stats (read/write):
  sdb: ios=118610/50224, merge=0/0, ticks=2991317/6860, in_queue=2998169, util=99.77%

主要查看以上红色字体部分的iops



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [linux fio 测试] 推荐:

linux使用FIO测试磁盘的iops

- - 企业架构 - ITeye博客
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等. fio 官网地址: http://freshmeat.net/projects/fio/.

fio性能测试工具新添图形前端gfio

- - 系统技术非业余研究
原创文章,转载请注明: 转载自 系统技术非业余研究. fio性能测试工具新添图形前端gfio. fio是个非常强大的IO性能测试工具,可以毫不夸张的说,如果你把所有的fio参数都搞明白了,基本上就把IO协议栈的问题搞的差不多明白了,原因在于作者Jens Axboe是linux内核IO部分的maintainer.

Linux kernel测试初探

- - 博客 - 伯乐在线
Linux基金会在4月3日公布了Linux开发年报,向我们展示了linux kernel作为世上最大开源合作项目之一的魅力. 自2005年以来,共有800家公司7800名开发人员参与Linux kernel开发,最近一年也有200家公司共1000名开发人员参与. 目前在Linus Torvalds的监督之下,Linux核心约2到3个月发布一个新的稳定版本,每次更新大约包含8000到12000项修改,平均每小时有提交6.88次修改.

Linux的OOM killer简单测试

- - Linux - 操作系统 - ITeye博客
       顾名思义,OOM(out of memory) killer,是Linux操作系统发现内存不足时,它会强制杀死一些用户进程(非内核进程),来保证系统有足够的物理内存进行分配.     Linux对大部分申请内存的请求都回复"yes",以便能跑更多更大的程序. 因为申请内存后,并不会马上使用内存.

linux用dd测试磁盘速度

- -
linux用dd测试磁盘速度. 首先要了解两个特殊的设备:. /dev/null:回收站、无底洞. /dev/zero:产生字符. 因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力. 因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力.

Linux主机性能测试方法

- - Mythsman
最近打算用躺家吃灰的树莓派4B搭一个NAS,用来快捷方便地访问和备份一些资源. 由于备选的硬件(芯片、硬盘、网线、路由器等)和软件(内网穿透技术)的技术选型比较多,这时候就需要有一个能简单评估服务性能的方法. 因此简单搜寻了一下常见方案,方便在技术选型时有个统一的对比标准,并且对一些常见指标能在数量级上有一些感性的理解.

Fio模拟Mysql服务器IO压力脚本

- 狗尾草 - Erlang非业余研究
原创文章,转载请注明: 转载自Erlang非业余研究. 本文链接地址: Fio模拟Mysql服务器IO压力脚本. fio是个非常好用的io压力模拟工具,功能非常齐全, 有兴趣的同学参看 这里. 这里我用fio模拟我们线上mysql服务器的压力来为厂家送来的pci-ssd卡做压力测试,底下是脚本(已经测试正确),也许有的同学有用.

Linux Kernel 3.0 内核文件系统EXT4 与 Btrfs测试比较

- Power - cnBeta.COM
EXT4文件系统大家可能都比较熟悉了,现在流行的ubuntu 11.04和Fedora15都是默认采用的EXT4,ext4是Linux的第四代扩展文件系统,是EXT3的后继版本. Btrfs 被称为是下一代 Linux 文件系统. 近年来 ext2/3 遇到越来越多的扩展性问题,在期待 ext4 的同时,人们发现了 btrfs,据说它采用了很多先进的文件系统设计,不仅解决了 ext2/3 的扩展性问题,还让人们看到了下一代文件系统所具有的许多其他特性.

Linux 性能监控、测试、优化工具

- - C++博客-牵着老婆满街逛
转载自:http://www.vpsee.com/2014/09/linux-performance-tools/. Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具. 系统性能专家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk ( Linux Performance Tools) 和幻灯片.

Kali Linux渗透测试实战 第一章 - 玄魂

- -
1.1 Kali Linux简介. 如果您之前使用过或者了解BackTrack系列Linux的话,那么我只需要简单的说,Kali是BackTrack的升级换代产品,从Kali开始,BackTrack将成为历史. 如果您没接触过BackTrack也没关系,我们从头开始了解Kali Linux. 按照官方网站的定义,Kali Linux是一个高级渗透测试和安全审计Linux发行版.