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

相关推荐
李松桃17 分钟前
基于端口号的服务配置
linux·nginx-核心模块配置
CodeYp20195 小时前
第14讲:mmap 实现文件 LRU 缓存
linux·lru·mmap
程序开发阿元5 小时前
一台 20G 的 VPS 被日志吃掉一半:我按这个顺序查了二十分钟
linux·ssh
.冰块.5 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
承渊政道6 小时前
Linux网络学习【深入理解多路转接select、poll的代码改写】
linux·ubuntu·select·多路转接·poll
雪落漂泊6 小时前
Linux进程(四)概念:命令行参数和环境变量篇
linux·运维·服务器
qq_377572776 小时前
linux x86 arm loongarch
linux
Dragon~Snow7 小时前
Centos Stream10 安装 MySQL-9.7.2-linux-glibc2.28-x86_64.tar
linux·mysql·centos
say_fall7 小时前
【Linux系统编程】Linux进程信号:从“外卖到了“到内核里的一张位图
linux·运维·服务器·车载系统·智能硬件
坤坤子吖7 小时前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习