文档章节

linux测试硬盘I/O

Firxiao
 Firxiao
发布于 2015/06/05 20:21
字数 1536
阅读 209
收藏 0

一、使用fio测试

①安装fio

#cd /root
#yum install -y make gcc libaio-devel || ( apt-get update && apt-get install -y make gcc libaio-dev  </dev/null )
#wget https://github.com/Crowd9/Benchmark/raw/master/fio-2.0.9.tar.gz ; tar xf fio*
#cd fio*
#make

  编译完成后会在当前目录生成fio二进制文件

./fio --help
fio-2.0.9
./fio [options] [job options] <job file(s)>
  --debug=optionsEnable debug logging. May be one/more of:
process,file,io,mem,blktrace,verify,random,parse,
diskutil,job,mutex,profile,time,net
  --outputWrite output to file
  --timeoutRuntime in seconds
  --latency-logGenerate per-job latency logs
  --bandwidth-logGenerate per-job bandwidth logs
  --minimalMinimal (terse) output
  --versionPrint version info and exit
  --terse-version=xSet terse version output format to 'x'
  --helpPrint this page
  --cmdhelp=cmdPrint command help, "all" for all of them
  --enghelp=enginePrint ioengine help, or list available ioengines
  --enghelp=engine,cmdPrint help for an ioengine cmd
  --showcmdTurn a job file into command line options
  --eta=whenWhen ETA estimate should be printed
            May be "always", "never" or "auto"
  --readonlyTurn on safety read-only checks, preventing writes
  --section=nameOnly run specified section in job file
  --alloc-size=kbSet smalloc pool to this size in kb (def 1024)
  --warnings-fatalFio parser warnings are fatal
  --max-jobs=nrMaximum number of threads/processes to support
  --server=argsStart a backend fio server
  --daemonize=pidfileBackground fio server, write pid to file
  --client=hostnameTalk to remote backend fio server at hostname
Fio was written by Jens Axboe <jens.axboe@oracle.com>
                 Jens Axboe <jaxboe@fusionio.com>

②随机读写测试

命令:

./fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

解释:

    创建一个4GB的test文件,以4KB为单位、75%/25% 的读写比例(每做1次写操作做3次读操作)对文件进行操作64次,

  运行过程会提示当前进度及硬盘iops

Jobs: 1 (f=1): [m] [23.8% done] [82671K/28003K /s] [20.7K/7000  iops] [eta 00m:32s]

  最终结果如下:

test: (g=0): rw=randrw, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio-2.0.9
Starting 1 process
test: Laying out IO file(s) (1 file(s) / 4096MB)
Jobs: 1 (f=1): [m] [100.0% done] [83491K/28410K /s] [20.9K/7102  iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=3121: Sat Jun  6 01:40:43 2015
  read : io=3071.4MB, bw=83575KB/s, iops=20893 , runt= 37631msec
  write: io=1024.7MB, bw=27883KB/s, iops=6970 , runt= 37631msec
  cpu          : usr=6.05%, sys=93.78%, ctx=3450, majf=0, minf=16
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
     issued    : total=r=786257/w=262319/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
   READ: io=3071.4MB, aggrb=83575KB/s, minb=83575KB/s, maxb=83575KB/s, mint=37631msec, maxt=37631msec
  WRITE: io=1024.7MB, aggrb=27883KB/s, minb=27883KB/s, maxb=27883KB/s, mint=37631msec, maxt=37631msec
Disk stats (read/write):
    dm-1: ios=785880/262176, merge=0/0, ticks=33692/21631, in_queue=55318, util=94.66%, aggrios=786257/262325, aggrmerge=0/2, aggrticks=33237/21514, aggrin_queue=54332, aggrutil=93.86%
  sda: ios=786257/262325, merge=0/2, ticks=33237/21514, in_queue=54332, util=93.86%

  其中:

read : io=3071.4MB, bw=83575KB/s, iops=20893 , runt= 37631msec
write: io=1024.7MB, bw=27883KB/s, iops=6970 , runt= 37631msec

  为硬盘随机读写的iops.

③随机读测试

命令:

./fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randread

 最终结果如下:

test: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio-2.0.9
Starting 1 process
Jobs: 1 (f=1): [r] [100.0% done] [115.1M/0K /s] [29.5K/0  iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=3125: Sat Jun  6 01:44:39 2015
  read : io=4096.0MB, bw=118119KB/s, iops=29529 , runt= 35509msec
  cpu          : usr=5.38%, sys=94.50%, ctx=3242, majf=0, minf=82
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
     issued    : total=r=1048576/w=0/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
   READ: io=4096.0MB, aggrb=118119KB/s, minb=118119KB/s, maxb=118119KB/s, mint=35509msec, maxt=35509msec
Disk stats (read/write):
    dm-1: ios=1042336/1, merge=0/0, ticks=32912/0, in_queue=32926, util=91.11%, aggrios=1048576/1, aggrmerge=0/0, aggrticks=33158/0, aggrin_queue=32889, aggrutil=90.55%
  sda: ios=1048576/1, merge=0/0, ticks=33158/0, in_queue=32889, util=90.55%

  其中: 

read : io=4096.0MB, bw=118119KB/s, iops=29529 , runt= 35509msec

   为硬盘随机读的iops.

④随机写测试

   命令:

./fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randwrite

   最终结果:

test: (g=0): rw=randwrite, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio-2.0.9
Starting 1 process
Jobs: 1 (f=1): [w] [100.0% done] [0K/93325K /s] [0 /23.4K iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=3147: Sat Jun  6 01:59:23 2015
  write: io=4096.0MB, bw=95122KB/s, iops=23780 , runt= 44094msec
  cpu          : usr=6.34%, sys=91.54%, ctx=4101, majf=0, minf=16
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
     issued    : total=r=0/w=1048576/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
  WRITE: io=4096.0MB, aggrb=95121KB/s, minb=95121KB/s, maxb=95121KB/s, mint=44094msec, maxt=44094msec
Disk stats (read/write):
    dm-1: ios=4/1047101, merge=0/0, ticks=0/143090, in_queue=143113, util=97.78%, aggrios=4/1048573, aggrmerge=0/4, aggrticks=0/143058, aggrin_queue=142634, aggrutil=97.50%
  sda: ios=4/1048573, merge=0/4, ticks=0/143058, in_queue=142634, util=97.50%

 其中:

write: io=4096.0MB, bw=95122KB/s, iops=23780 , runt= 44094msec

  为硬盘的随机写iops.       

 

二、使用IOPing测试 

①安装IOPing

#cd /root
#yum install -y make gcc libaio-devel || ( apt-get update && apt-get install -y make gcc libaio-dev  </dev/null )
#wget https://ioping.googlecode.com/files/ioping-0.6.tar.gz ; tar xf ioping*
#cd ioping*
#make

   编译后会在当前目录生成ioping二进制文件

 #./ioping
 Usage: ioping [-LCDRq] [-c count] [-w deadline] [-p period] [-i interval]
               [-s size] [-S wsize] [-o offset] device|file|directory
        ioping -h | -v
      -c <count>      stop after <count> requests
      -w <deadline>   stop after <deadline>
      -p <period>     print raw statistics for every <period> requests
      -i <interval>   interval between requests (1s)
      -s <size>       request size (4k)
      -S <wsize>      working set size (1m)
      -o <offset>     in file offset
      -L              use sequential operations (includes -s 256k)
      -C              use cached I/O
      -D              use direct I/O
      -R              seek rate test (same as -q -i 0 -w 3 -S 64m)
      -q              suppress human-readable output
      -h              display this message and exit
      -v              display version and exit


②开始测试

  命令:     

 ./ioping -c 10 .

  解释:

        ioping当前目录10次

  结果如下:

# ./ioping -c 10 .
4096 bytes from . (xfs /dev/mapper/centos-root): request=1 time=0.2 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=2 time=0.4 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=3 time=0.3 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=4 time=0.3 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=5 time=0.4 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=6 time=0.4 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=7 time=0.2 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=8 time=0.3 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=9 time=0.3 ms
4096 bytes from . (xfs /dev/mapper/centos-root): request=10 time=0.3 ms
--- . (xfs /dev/mapper/centos-root) ioping statistics ---
10 requests completed in 9013.7 ms, 3172 iops, 12.4 mb/s
min/avg/max/mdev = 0.2/0.3/0.4/0.1 ms

  其中:

10 requests completed in 9013.7 ms, 3172 iops, 12.4 mb/s

  为硬盘的iops.


原文: https://www.binarylane.com.au/support/solutions/articles/1000055889-how-to-benchmark-disk-i-o



© 著作权归作者所有

共有 人打赏支持
Firxiao
粉丝 22
博文 102
码字总数 37160
作品 0
浦东
运维
私信 提问
linux下文件系统、iso挂载

分类: Mount命令: 需要注意的: 1、挂载点必须是一个目录。 2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文...

浅水ing
2018/06/26
0
0
Linux 2.6.28 五大特性

Linus Torvalds将Linux 2.6.28作为圣诞礼物送给所有Linux用户,现在新年已过,是时候回顾这个去年最重要的内核版本了。Computerworld.com的一位博客列出了他认为的Linux 2.6.28 五大特性。 ...

红薯
2009/01/13
545
2
[转载] 磁盘硬件问题(坏块)检测

标签 PostgreSQL , Linux , Windows , SSD , smartctl , smartmontools , badblocks , hdparm , HD Tune 背景 Linux下面可以使用smartctl , badblocks检查是否有坏块。 Win下面可以使用HD Tu......

德哥
2018/04/18
0
0
固态硬盘上 Ext4 和 xfs 性能比较

Ext4 已经成为很多新版本 Linux 系统的标配文件系统,很多人问我,在 SSD 上是使用 Ext4 好呢,还是其他文件系统。 一般我们推荐 xfs ,但它牵扯到 ext3 中已有的一些问题:在 O_DIRECT 模式...

王振威
2012/11/27
15.5K
2
固态硬盘上 Ext4 和 xfs 性能比较

Ext4 已经成为很多新版本 Linux 系统的标配文件系统,很多人问我,在 SSD 上是使用 Ext4 好呢,还是其他文件系统。 一般我们推荐 xfs ,但它牵扯到 ext3 中已有的一些问题:在 O_DIRECT 模式...

红薯
2012/03/16
6.9K
14

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
44分钟前
2
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
3
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
2
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部