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

相关推荐
曦夜日长7 小时前
Linux系统篇,开发工具(五):git的基本使用和浅层认识
linux·运维·服务器
Harm灬小海7 小时前
【云计算学习之路】学习Centos7系统-ROOT密码重置方法
linux·运维·服务器·学习·云计算
weixin_453639597 小时前
Docker Redis 本地能 Ping 通但 6379 端口连不上?排查记录与解决
linux·redis
Python-AI Xenon8 小时前
Linux逻辑卷(LVM)初始化与文件系统选型全指南
linux·运维·性能测试·存储
z202305088 小时前
RDMA之RoCEv2 无损网络PFC 、DCQCN 和ECN (7)
linux·服务器·网络·人工智能·ai
dadaobusi8 小时前
MRIF说明
linux
我星期八休息8 小时前
Linux系统编程—库制作与原理
linux·运维·服务器·数据结构·人工智能·python·散列表
一个在高校打杂的8 小时前
honeypot之opencanary(轻量化蜜罐)
linux·网络安全·网络攻击模型·安全威胁分析·策略模式
s_w.h9 小时前
【 linux 】认识make和makefile
linux·运维·bash
不怕犯错,就怕不做9 小时前
ARM设备异常断电容易造成数据损坏,硬件如何设计
linux·驱动开发·嵌入式硬件