fio 测试磁盘性能
2024-10-19 11:43:26
在磁盘测试中最关心的几个指标分别为:
iops(每秒执行的IO次数)、bw(带宽,每秒的吞吐量)、lat(每次IO操作的延迟)。
当每次IO操作的block较小时,如512bytes/4k/8k等,测试的主要是iops。
当每次IO操作的block较大时,如256k/512k/1M等,测试的主要是bw。
1. FIO 简介
FIO 是一款 用于对磁盘进行性能测试的工具。可以测试IOPS,吞吐量,IO延迟等主要性能指标。而且支持多种IO引擎。
2. FIO 下载
下载地址:http://brick.kernel.dk/snaps/
打开以上网址,选择自己需要的版本并下载。比如:
wget http://brick.kernel.dk/snaps/fio-3.5.tar.gz
--2018-03-26 14:19:37-- http://brick.kernel.dk/snaps/fio-3.5.tar.gz
正在解析主机 brick.kernel.dk... 216.160.245.99
正在连接 brick.kernel.dk|216.160.245.99|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:http://113.215.21.45:80/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/brick.kernel.dk/snaps/fio-3.5.tar.gz [跟随至新的 URL]
--2018-03-26 14:19:39-- http://113.215.21.45/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/brick.kernel.dk/snaps/fio-3.5.tar.gz
正在连接 113.215.21.45:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:729544 (712K) [application/x-gzip]
正在保存至: “fio-3.5.tar.gz”
72% [======================================================================> ] 532,565 154K/s eta(英国中部时
83% [=================================================================================> ] 610,757 159K/s eta(英国中部时
84% [=================================================================================> ] 616,549 149K/s eta(英国中部时
96% [=============================================================================================> ] 706,325 162K/s eta(英国中部时
100%[=================================================================================================>] 729,544 164K/s in 4.3s
2018-03-26 14:19:44 (164 KB/s) - 已保存 “fio-3.5.tar.gz” [729544/729544])
或者下载后再上传至服务器。
3. 解压并安装
# tar -xzvf ./fio-3.5.tar.gz
.... 省略输出
# cd fio-3.5
# make && make install
.... 省略输出
# which fio
/usr/local/bin/fio
4. 使用说明
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
direct= 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=- 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs= 本次的测试线程为30.
runtime= 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite= 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles= 每个进程生成文件的数量
5. 测试示例
混合测试:
fio -filename=/tmp/test -direct= -iodepth -thread -rw=randrw -rwmixread= -ioengine=psync -bs=512b -size=200m -numjobs= -runtime= -group_reporting -name=mytest
顺序读:
fio -filename=/dev/test -direct= -iodepth -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs= -runtime= -group_reporting -name=mytest 随机写:
fio -filename=/dev/test -direct= -iodepth -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs= -runtime= -group_reporting -name=mytest 顺序写:
fio -filename=/dev/test -direct= -iodepth -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs= -runtime= -group_reporting -name=mytest
最新文章
- CentOS 6.5 搭建 LAMP 环境
- WP多语言
- luigi学习2-在hadoop上运行Top Artists
- 为什么国外程序员爱用Mac?
- 如何用C#获得文件信息以及扩展信息
- 实现CodeFirst自动数据迁移无需命令
- Linux下搭建Oracle11g RAC(7)----安装Oracle 软件
- gets函数完美替代
- BZOJ 1880: [Sdoi2009]Elaxia的路线( 最短路 + dp )
- 关于Aspose.Words插入表格单元格的高度问题的解决
- Redis客户端断开重连功能要点
- 2.基础(Foundations)
- 【转】使用Mybatis时遇到的延迟加载造成返回异常的问题——HttpMessageConversionException: Type definition error
- jenkins 可以设置最多执行并发执行多少个
- git 查看/修改用户名、密码
- TensorFlow object detection API应用
- Fire Game 双向bfs
- Netdata Linux下性能实时监测工具
- 部分函数依赖 &;&; 完全函数依赖
- html中的一些常用的样式标签