fio文件读写io带宽测试工具

1. 安装

sh 复制代码
yum install fio

2. 使用

sh 复制代码
fio --name=job_name \   任务名称 随意命名
    --directory=/mnt/small_single_fio \   目标路径
    --rw=write \    IO 操作类型  write read 
    --bs=4k \      块大小  每次 IO 操作的数据量
    --size=1G \     文件大小
    --numjobs=1 \   并发数  可以多并发
    --ioengine=libaio \   io引擎-异步
    --loops=1000    循环执行1000次  会保存同名文件--只保留一个文件名  
    --direct=1 \      使用直接 IO(绕过操作系统缓存)
    --runtime=60 \   限定执行时间
    --time_based \
    --group_reporting \
    --output=cephfs_small_randwrite.csv    保存测试结果的输出文件

3. 配置文件使用

生成fio配置文件

sh 复制代码
# 创建基础配置(定义任务名称、读取模式、引擎等)
echo "
[data_all_read]
rw=read                # 操作类型:读取(不修改文件)
ioengine=sync          # I/O引擎:同步读取(兼容性好,适合现有文件)
direct=0               # 是否绕过缓存:0=使用缓存(默认),1=直接I/O(测试物理设备性能时用)
numjobs=1              # 并发任务数:1=单线程,可根据需求增加(如4)
group_reporting        # 汇总所有文件的结果(而非单独输出每个文件)
output=data_bandwidth.log  # 结果输出文件(含带宽数据)
" > read_data_all.fio

# 递归查找/data/下所有文件,将路径添加到配置文件的filename参数中
find /data/ -type f | while read file; do
    echo "filename=$file" >> read_data_all.fio
done

去掉output参数

sh 复制代码
# 创建基础配置
echo "
[recursive_read]
rw=read
ioengine=sync
direct=0
numjobs=1
group_reporting
" > read_all_files.fio
# 继续添加所有文件路径
find /data/ -type f | while read file; do
    echo "filename=$file" >> read_all_files.fio
done

运行fio测试

sh 复制代码
fio read_all_files.fio 

参考文档

https://developer.aliyun.com/article/1369594
https://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-nrfiles
https://github.com/axboe/fio

mdtest 性能测试工具

相关推荐
人工智能训练1 分钟前
如何在 Ubuntu 22.04 中安装 Docker 引擎和 Linux 版 Docker Desktop 桌面软件
linux·运维·服务器·数据库·ubuntu·docker·ai编程
Maple_land36 分钟前
Linux复习:系统调用与fork
linux·运维·服务器·c++·centos
无聊的小坏坏1 小时前
Poll 服务器实战教学:从 Select 迁移到更高效的多路复用
linux·服务器·poll·io多路复用
WAsbry1 小时前
InputConnection机制与跨进程文本操作的工程实践
android·linux
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [kernel]cpu
linux·笔记·学习
WAsbry1 小时前
从一个Bug看Android文本编辑的设计缺陷
android·linux
大聪明-PLUS2 小时前
Linux 中 timeout、watch 和 at 的指南:管理命令执行时间
linux·嵌入式·arm·smarc
想唱rap3 小时前
Linux开发工具(4)
linux·运维·服务器·开发语言·算法
robin59113 小时前
Linux-通过端口转发访问数据库
linux·数据库·adb
视觉AI3 小时前
如何查看 Linux 下正在运行的 Python 程序是哪一个
linux·人工智能·python