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 性能测试工具

相关推荐
orion577 小时前
Missing Semester Class1:course overview and introduction of shell
linux
用户1204872216113 小时前
Linux驱动编译与加载
linux·嵌入式
用户8055336980320 小时前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户8055336980320 小时前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
七歌杜金房1 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia2 天前
linux curl命令详解_curl详解
linux
扛枪的书生2 天前
Linux 网络管理器用法速查
linux
顺风尿一寸3 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode3 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫3 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux