fio 测试 磁盘I/O: ls -1 /sys/block/sda/queue/ | awk '{cmd="cat "i$0; print i$0; system(cmd) }' i=`pwd`'/'
小型计算机系统接口(SCSI,Small Computer System Interface)
SAS(Serial Attached SCSI,串列SCSI)
SCSI 硬盘名称: sd[a-p]
sda1、sda2又分别代表不同分区(Partition)
1. 进入/sys/block/sda/queue/, 查看磁盘sda的参数
ls - /sys/block/sda/queue/ | awk '{cmd="cat "i$0; print i$0; system(cmd) }' i=`pwd`'/'
/sys/block/sda/queue/add_random
1
/sys/block/sda/queue/discard_granularity
0
/sys/block/sda/queue/discard_max_bytes
0
/sys/block/sda/queue/discard_zeroes_data
0
/sys/block/sda/queue/hw_sector_size
512
/sys/block/sda/queue/iosched
cat: /sys/block/sda/queue/iosched: 是一个目录
/sys/block/sda/queue/iostats
1
/sys/block/sda/queue/logical_block_size
512
/sys/block/sda/queue/max_hw_sectors_kb
32767
/sys/block/sda/queue/max_integrity_segments
0
/sys/block/sda/queue/max_sectors_kb
/sys/block/sda/queue/max_segments
128
/sys/block/sda/queue/max_segment_size
65536
/sys/block/sda/queue/minimum_io_size
4096
/sys/block/sda/queue/nomerges
0
/sys/block/sda/queue/nr_requests
128
/sys/block/sda/queue/optimal_io_size
0
/sys/block/sda/queue/physical_block_size
4096
/sys/block/sda/queue/read_ahead_kb
128
/sys/block/sda/queue/rotational
1
/sys/block/sda/queue/rq_affinity
1
/sys/block/sda/queue/scheduler
noop deadline [cfq]
/sys/block/sda/queue/unpriv_sgio
0
/sys/block/sda/queue/write_same_max_bytes
scsi设备列表
lsscsi -l
[0:0:0:0] disk ATA ST1000DM003-1ER1 CC46 /dev/sda
state=running queue_depth=1 scsi_level=6 type=0 device_blocked=0 timeout=30
执行fio命令时,先确保改磁盘没有数据,不然数据会被覆盖
fio --name=randwrite --rw=randwrite --bs=4k --size=20G --runtime=1200 --ioengine=libaio --iodepth=16 --numjobs=1 --filename=/dev/sda --direct=1 --group_reporting
filename=/dev/sda 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=4k 单次io的块文件大小为4k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=1200 测试时间为1200秒
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 汇总每个进程的信息。
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。
runtime=int Terminate processing after the specified number of seconds. filename=str fio normally makes up a file name based on the job name, thread number, and file number. If you want to share files between threads in a job or several jobs, specify a filename for each of them to override the default. If the I/O engine is file-based, you can specify a number of files by separating the names with a ':' character. '-' is a reserved name, meaning stdin or stdout, depending on the read/write direction set. iodepth=int Number of I/O units to keep in flight against the file. Note that increasing iodepth beyond 1 will not affect synchronous ioengines (except for small degress when verify_async is in use). Even async engines my impose OS restrictions causing the desired depth not to be achieved. This may happen on Linux when using libaio and not setting direct=1, since buffered IO is not async on that OS. Keep an eye on the IO depth distribution in the fio output to verify that the achieved depth is as expected. Default: 1.
然后观察iostat输出
iostat -mtx 2
2018年01月22日 16时54分33秒
avg-cpu: %user %nice %system %iowait %steal %idle
1.01 0.00 0.51 25.25 0.00 73.23 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 1.50 0.00 3.00 183.50 0.12 0.71 9.09 18.11 101.74 177.67 100.50 5.36 100.00
rrqms:每秒这个设备相关的读取请求有多少被Merge了(读取数据时,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge)
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:The number of sectors read from the device per second.
wsec/s:The number of sectors written to the device per second.
rKB/s:The number of kilobytes read from the device per second.
wKB/s:The number of kilobytes written to the device per second.
avgrq-sz:The average size (in sectors) of the requests that were issued to the device. (平均请求扇区数)
avgqu-sz: The average queue length of the requests that were issued to the device. (平均请求队列的长度)
await:每一个IO请求的响应时间(队列时间+服务时间),一般地系统IO响应时间应该低于5ms
svctm:表示平均每次设备I/O操作的服务时间。如果await的值远高于svctm的值,则表示I/O队列等待太长。
%util: 在统计时间内所有处理IO时间,除以总共统计时间。
参考:
fio 测试 磁盘I/O: ls -1 /sys/block/sda/queue/ | awk '{cmd="cat "i$0; print i$0; system(cmd) }' i=`pwd`'/'的更多相关文章
- linux使用FIO测试磁盘的iops 【转载】
linux使用FIO测试磁盘的iops 2013-09-23 10:59:21 分类: LINUX FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括 ...
- [记录]FIO测试磁盘iops性能
FIO测试磁盘iops性能 1.SATA和SAS盘原生IOPS如下: 2.RAID磁盘阵列对应的写惩罚级别: 3.计算功能性IOPS公式如下: 功能性 IOPS=(((总原生 IOPS×写 %))/( ...
- FIO 测试磁盘iops 以及读写
最近在做mariadb的性能,感觉io 有瓶颈,就使用fio 来测试一下磁盘.下文为转载文章(温馨提示:此命令很伤硬盘,测试前请备份数据,- -我就写坏了一个.) FIO 是测试IOPS的非常好的工具 ...
- 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越高意味着在同一 ...
- linux 使用FIO测试磁盘iops 方法详解
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎, 包括:sync,mmap, libaio, posixaio, SG v3, splice, null, ...
- vdbench和fio测试磁盘性能的对比总结
一.安装 1.安装vdbench,首先安装java:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...
- fio 测试磁盘
root@rook-test:/# ceph osd status+----+-----------------------------+-------+-------+--------+------ ...
- FIO测试磁盘的iops
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, ...
随机推荐
- hadoop 在centos中的搭建
总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器,解压安装JDK,解压安装Hadoop,配置hdfs.mapreduce等主从关系. 1.环境,3台CentOS7,64位,Hadoo ...
- github管理开发代码流程
首先.通过github网站新建一个仓库,得到仓库地址 https://github.com/piercalex/a.git 接着回到客户端,打开git shell: //在客户端配置账户信息 git ...
- ORA-00257:archiver error问题处理方法
原文链接:http://www.7747.net/database/201109/104615.html ORA-00257: archiver error. Connect internal onl ...
- 树莓派集群实践2——修改树莓派3 指定IP,DNS要修改dhcpcd.conf
vim /etc/dhcpcd.conf 修改如下 interface eth0 static ip_address=192.168.1.177/24 static routers=192.168.1 ...
- 从浏览器中输入URL到页面加载的发生了什么-转载
转:https://www.cnblogs.com/confach/p/10050013.html 背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但 ...
- WPF自定义路由事件(二)
WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件 WPF ...
- css - 兼容适配坑点总结(。。。)
1. transform为代表的这些css3属性一定要写-webkit-,不然低版本(目前遇到的是8)的苹果,不支持. 2. x的适配 /* x */ @media only screen and ( ...
- 解决在html中引入font-awesome的css文件后, 图标显示不出来
今天小颖在做项目时,需要在html文件中引入font-awesome.min.css,但是引入后: 以前小颖在用font-awesome库里的图标时,都是直接从node中下包,然后在main.js中引 ...
- docker 怎么下载指定版本的镜像文件
在使用Docker时我想pull远端仓库的CentOS 6的镜像,但是我直接搜索下载下来的是最新的版本.那我有没有什么办法直接下载Centos6呢? 方法: 直接上 hub.docker.com 查 ...
- A - 取(m堆)石子游戏
m堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,10先取者胜,先取者第1次取时可以从有8个的那一堆取走7个剩下1个,也 ...