linux使用FIO测试磁盘IO性能的例子

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

一、安装

可以直接yum进行安装,也可以下载压缩包进行安装

yum install fio

二、命令

1、随机读:

fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file

2、顺序读:

fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file

3、随机写:

fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file

4、顺序读:

fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file

5、混合随机读写:

fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file -ioscheduler=noop
PS:
filename=/dev/sda1       测试文件名称,通常选择需要测试的盘的data目录
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
rw=randread 测试随机读的I/O
bs=4k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=60g 本次的测试文件大小为60g,以每次4k的io进行测试
numjobs=64 本次的测试线程为64
runtime=10 测试时间为10秒,如果不写则一直将5g文件分4k每次写完为止
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g 只使用1g内存进行测试
zero_buffers 用0初始化系统buffer
nrfiles=8 每个进程生成文件的数量。

三、实例测试

此例是测试随机读,文中bw=1532.2KB/s, iops=383即是测试出的iops

[root@localhost mapper]# fio -filename=/dev/sda1 -direct=1 -rw=randread -bs=4k -size 60G -numjobs=64 -runtime=10 -group_reporting -name=file
 
file: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
 
...
 
file: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
 
fio 1.57
 
Starting 64 processes
 
Jobs: 4 (f=4): [______r_______________________r_r_______r_______________________] [3.5% done] [745K/0K /s] [181 /0 iops] [eta 12m:26s]s]
 
file: (groupid=0, jobs=64): err= 0: pid=8717
 
read : io=15792KB, bw=1532.2KB/s, iops=383, runt= 10307msec
 
clat (usec): min=78 , max=1303.3K, avg=99439.90, stdev=12973.11
 
lat (usec): min=78 , max=1303.3K, avg=99440.39, stdev=12973.10
 
bw (KB/s) : min= 3, max= 150, per=2.52%, avg=38.61, stdev= 2.45
 
cpu : usr=0.01%, sys=0.68%, ctx=4026, majf=0, minf=1961
 
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 r/w/d: total=3948/0/0, short=0/0/0
 
lat (usec): 100=0.13%, 250=0.61%, 500=0.25%, 750=0.08%, 1000=0.03%
 
lat (msec): 2=0.03%, 4=0.10%, 10=0.76%, 20=1.85%, 50=10.61%
 
lat (msec): 100=18.90%, 250=47.21%, 500=19.02%, 750=0.28%, 1000=0.10%
 
lat (msec): 2000=0.05%
 
Run status group 0 (all jobs):
 
READ: io=15792KB, aggrb=1532KB/s, minb=1568KB/s, maxb=1568KB/s, mint=10307msec, maxt=10307msec
 
Disk stats (read/write):
 
sda: ios=3931/13, merge=0/13, ticks=584686/184, in_queue=584841, util=98.53%

时间: 2024-10-24 06:45:24

linux使用FIO测试磁盘IO性能的例子的相关文章

磁盘IO性能监控(Linux 和 Windows)

磁盘的IO性能是衡量计算机总体性能的一个重要指标.Linux提供了iostat命令来获却磁盘输入/输出(即IO)统计信息,Windows则提供了WMI接口,可以通过编写一个简单的脚本来获取与iostat相当的功能. 1.Linux下的iostat命令 iostat -d -k -t 2 每隔2秒统计一次磁盘IO信息,直到按Ctrl+C终止程序,-d 选项表示统计磁盘信息, -k 表示以每秒KB的形式显示,-t 要求打印出时间信息,2 表示每隔 2 秒输出一次.第一次输出的磁盘IO负载状况提供了关

linux用dd测试磁盘速度例子

首先要了解两个特殊的设备: /dev/null:回收站.无底洞 /dev/zero:产生字符 Ø 测试磁盘写能力 time dd if=/dev/zero of=/test.dbf bs=8k count=300000 因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力. Ø 测试磁盘读能力 time dd if=/dev/sdb1 of=/dev/null bs=8k 因为/dev/sd

linux用dd测试磁盘速度

[root@localhost ~]# time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file记录了1000000+0 的读入记录了1000000+0 的写出1024000000字节(1.0 GB)已复制,11.6493 秒,87.9 MB/秒 real    0m11.690suser    0m0.544ssys     0m10.996s[root@localhost ~]# ll /总用量 1016330-rw-r--r--.   

linux中一键测试脚本bench.sh的例子

经过几个版本的演化,一键测试脚本 bench.sh 已经几乎全面适用于各种 Linux 发行版的网络(下行)和 IO 测试. 并将测试结果以较为美观的方式显示出来. 总结一下 bench.sh 特点: 1.显示当前测试的各种系统信息: 2.取自世界多处的知名数据中心的测试点,下载测试比较全面: 3.支持 IPv6 下载测速: 4.IO 测试三次,并显示平均值. 再配合 unixbench.sh 脚本测试,即可全面测试 VPS 的性能. 使用方法: 命令1: wget -qO- bench.sh

linux下测试磁盘的读写IO速度

有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策. 下面是两种测试方法:(1)使用hdparm命令这是一个是用来获取ATA/IDE硬盘的参数的命令,是由早期Linux IDE驱动的开发和维护人员 Mark Lord开发编写的( hdparm has been written by Mark Lord <mlord@pobox.com>, the primary developer

Linux系统中使用iostat分析IO性能

对于I/O-bond类型的进程,我们经常用iostat工具查看进程IO请求下发的数量.系统处理IO请求的耗时,进而分析进程与操作系统的交互过程中IO方面是否存在瓶颈. 下面通过iostat命令使用实例,说明使用iostat查看IO请求下发情况.系统IO处理能力的方法,以及命令执行结果中各字段的含义. 1.不加选项执行iostat 我们先来看直接执行iostat的输出结果: linux # iostat Linux 2.6.16.60-0.21-smp (linux) 06/12/12 avg-c

Linux 内核的测试和调试(6)

Linux 内核的测试和调试(6) Linux 内核补丁测试 你试过自己写内核补丁吗?本节介绍在把你的补丁包提交到 Linux 邮箱列表之前,需要做哪些操作.另外我们还会介绍如何把它发送出去. 写好代码后,编译它.把 make 过程产生的输出保存到文档中,查看新代码有没有警告信息.找到所有的警告信息,处理掉.当你的代码编译过程没有任何不正常的输出,安装这个内核,然后启动测试.如果启动正常,查看 dmesg 里面有没于错误,与老内核生成的 dmesg 日志做个比较.运行一些压力测试,请参考我们以前

Linux系统中使用iostat命令检测磁盘的IO性能

  iostat命令可以提供丰富的IO性能状态数据.iostat可以收集和显示系统输入/输出存储设备方面的统计信息.经常用于追查存储设备性能方面的问题,包括设备,本地磁盘和nfs等远程磁盘. iostat提供几个用于定制输出的开关.最有用的有: -c 只显示CPU行 -d 显示设备(磁盘)使用状态 -k 以千字节为单位显示磁盘输出 -t 在输出中包括时间戳 -x 在输出中包括扩展的磁盘指标 rrqm/s: 每秒进行 merge 的读操作数目. wrqm/s: 每秒进行 merge 的写操作数目.

【转】Orion - oracle提供的测试io性能的工具

Orion是oracle提供的测试io性能的工具.它可以用来模拟Oracle数据库IO,也可以用来仿 真ASM的条带化的功能. Orion可以支持下列IO负载 1. 小的随机的IO:OLTP的应用主要是随机的读写,大小和数据的块大小一样(一般是8K).这样的应用主要是关注的吞吐量是IOPS和一个请求的平均延时时间.Orion可以仿真一个随机IO负载.指定的读写百分比,指定的IO大小,指定的IOs,IOs是分布在不同的磁盘上. 2. 大的连续的IO:数据仓库的应用,数据装载,备份,和恢复会产生连续