一、目的
本文核心目的为明确呈现 MStore V1.1 产品的存储IO性能表现,具体针对块存储(ISCSI)、文件存储(NFS、CephFS)两类存储服务,在 Public 网络与 Cluster 网络分离部署、且所有 OSD 均采用 NVME 接口 SSD 的硬件及网络环境下,通过 FIO 测试工具,系统验证并量化读、写、随机写、随机读写四种核心IO模式下的 IOPS(每秒输入/输出操作数)与带宽关键性能指标,为评估产品存储性能适配性、支撑业务部署决策提供参考数据依据。
二、使用NFS方式挂载文件存储
具体参考值如下:
客户端挂载示例如下:
# 客户端挂载命令如下
fio -filename=/mnt/test/test -direct=1 -iodepth=2 -thread -rw=read -ioengine=libaio -bs=4k -size=5G -numjobs=5 -runtime=60 -group_reporting -name=mytest
# 测试命令详解:
#-filename=/mnt/test/test:指定测试使用的文件路径。
#-direct=1:使用直接I/O(O_DIRECT),绕过系统缓存,这样测试的结果更接近存储设备的真实性能。
#-iodepth=2:这个参数指定I/O深度,即同时发出的I/O请求数量。这里设置为2。
#-thread:使用线程而不是进程来执行I/O。
#-rw=read:测试模式为读。其他常见模式有write(写)、randread(随机读)、randwrite(随机写)、rw(混合读写)等。
#-ioengine=libaio:使用Linux的异步I/O引擎(libaio)。这是常用的I/O引擎,支持异步I/O。
#-bs=4k:块大小(block size)为4KB。这是每次I/O操作的数据块大小。
#-size=5G:每个线程或作业的总I/O大小为5GB。
#-numjobs=5:启动2个线程或进程来执行I/O,相当于5个并发任务。(超过5个会导致fio测试进程卡住)
#-runtime=60:测试运行时间为60秒。超过这个时间后,测试将停止,即使没有完成指定的数据量(5G)。
#-group_reporting:将多个作业的统计结果合并报告,而不是分别报告每个作业的结果。
#-name=mytest:指定测试的名称,这里为"mytest",在输出中会显示。三、使用CephFS方式挂载文件存储
具体参考值如下:
注意:该挂载方式只支持ubuntu 2204和银河麒麟v11
客户端挂载示例如下:
# 客户端挂载命令如下
fio -filename=/mnt/test/test -direct=1 -iodepth=32 -thread -rw=read -ioengine=libaio -bs=4k -size=2G -numjobs=32 -runtime=60 -group_reporting -name=mytest
# 测试命令详解:
#-filename=/mnt/test/test:指定测试使用的文件路径。
#-direct=1:使用直接I/O(O_DIRECT),绕过系统缓存,这样测试的结果更接近存储设备的真实性能。
#-iodepth=32:这个参数指定I/O深度,即同时发出的I/O请求数量。
#-thread:使用线程而不是进程来执行I/O。
#-rw=read:测试模式为读。其他常见模式有write(写)、randread(随机读)、randwrite(随机写)、rw(混合读写)等。
#-ioengine=libaio:使用Linux的异步I/O引擎(libaio)。这是常用的I/O引擎,支持异步I/O。
#-bs=4k:块大小(block size)为4KB。这是每次I/O操作的数据块大小。
#-size=2G:每个线程或作业的总I/O大小为2GB。
#-numjobs=32:启动32个线程或进程来执行I/O,相当于32个并发任务。
#-runtime=60:测试运行时间为60秒。超过这个时间后,测试将停止,即使没有完成指定的数据量(5G)。
#-group_reporting:将多个作业的统计结果合并报告,而不是分别报告每个作业的结果。
#-name=mytest:指定测试的名称,这里为"mytest",在输出中会显示。四、使用ISCSI方式挂载块存储
具体参考值如下:
客户端详细挂载方法见:Centos7上使用ISCSI挂载块存储
客户端挂载示例如下:
# 客户端挂载命令如下
fio -filename=/mnt/test/test -direct=1 -iodepth=32 -thread -rw=read -ioengine=libaio -bs=4k -size=2G -numjobs=32 -runtime=60 -group_reporting -name=mytest
# 测试命令详解:
#-filename=/mnt/test/test:指定测试使用的文件路径。
#-direct=1:使用直接I/O(O_DIRECT),绕过系统缓存,这样测试的结果更接近存储设备的真实性能。
#-iodepth=32:这个参数指定I/O深度,即同时发出的I/O请求数量。
#-thread:使用线程而不是进程来执行I/O。
#-rw=read:测试模式为读。其他常见模式有write(写)、randread(随机读)、randwrite(随机写)、rw(混合读写)等。
#-ioengine=libaio:使用Linux的异步I/O引擎(libaio)。这是常用的I/O引擎,支持异步I/O。
#-bs=4k:块大小(block size)为4KB。这是每次I/O操作的数据块大小。
#-size=2G:每个线程或作业的总I/O大小为2GB。
#-numjobs=32:启动32个线程或进程来执行I/O,相当于32个并发任务。
#-runtime=60:测试运行时间为60秒。超过这个时间后,测试将停止,即使没有完成指定的数据量(5G)。
#-group_reporting:将多个作业的统计结果合并报告,而不是分别报告每个作业的结果。
#-name=mytest:指定测试的名称,这里为"mytest",在输出中会显示。作者:束鹏 创建时间:2026-01-12 14:01
最后编辑:束鹏 更新时间:2026-01-30 09:42
最后编辑:束鹏 更新时间:2026-01-30 09:42