安装Fio工具:sudo apt-get install fio
常用命令:
#连续读
fio -filename=/mnt/beegfs/testio -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=120 -group_reporting -name=mytest
#随机读
fio -filename=/mnt/beegfs/testio -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=120 -group_reporting -name=mytest
#顺序写
fio -filename=/mnt/beegfs/testio -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=60 -group_reporting -name=mytest
#随机写
fio -filename=/mnt/beegfs/testio -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest
#混合读
fio -filename=/mnt/beegfs/testio -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
通过sudo beegfs health capacity查看所有储存节点的状态如下:

5个盘都是健康的。
执行命令:sudo beegfs entry info /mnt/beegfs/testfio,得到结果如下:

我们要测试的文件/testfio分布在4个盘上,条带化策略是RAID0
执行命令测试随机读取IO性能:fio -filename=/mnt/beegfs/testfio -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=2G -numjobs=300 -runtime=120 -group_reporting -name=mytest
bs=4k代表4k的读取。 -numjobs代表线程数。测试结果如下:

执行命令:fio -filename=/data1/zxl_data/testfio -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=2G -numjobs=300 -runtime=120 -group_reporting -name=mytest
测试结果如下:

执行命令:fio -filename=/mnt/nasv3/testfio -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=2G -numjobs=300 -runtime=120 -group_reporting -name=mytest
测试结果如下:

参数说明:
| 配置项 | 取值 | 配置说明 |
|---|---|---|
| 测试类型 | randread | 4K 随机读,对 IOPS 敏感,考验分布式系统的元数据管理与数据分片能力 |
| 块大小 | 4k | 小 IO 场景,是衡量存储系统随机性能的典型指标 |
| 队列深度 | iodepth=1 | 同步 IO 模式(psync 引擎),每次仅处理一个 IO 请求 |
| 并发线程数 | numjobs=300 | 超高并发,远超 HDD 和大多数 NAS 的物理处理能力,但可被 BeeGFS 的多盘并行特性分摊压力 |
| IO 引擎 | psync | 同步阻塞式 IO,每个线程都在等待磁盘响应 |
| 直接 IO | direct=1 | 绕过客户端文件系统缓存,直接测试后端存储性能 |
| 测试文件大小 | 2G | 大小适中,避免因文件过小导致数据被 NAS 缓存 |
| 测试时长 | 120s | 测试周期足够长,结果具有统计意义 |
实验结果横向对比
| 受测试设备 | IOPS | ||
|---|---|---|---|
| /mnt/beegfs | |||
| /data1/zxl_data | |||