Sysbench文件IO基准测试需关注哪些指标?附测试命令与结果
核心关注指标
针对你做的随机读写(rndrw)场景测试,重点看这些指标:
- 每秒IO操作数(IOPS):
reads/s、writes/s、fsyncs/s是核心,直接体现设备处理IO请求的能力,数值越高说明设备IO性能越强。 - 吞吐量:
read, MiB/s和written, MiB/s代表每秒实际读写的数据量,反映设备的带宽承载能力,适合对比不同设备的数据传输效率。 - 延迟指标:
- 平均延迟(
avg):反映整体IO响应速度,越低越好 - 95%分位延迟(
95th percentile):这个比平均延迟更重要,能体现大部分慢请求的响应时间,如果这个值过高,说明设备在高负载下容易出现长尾延迟,影响业务稳定性 - 最大延迟(
max):极端情况下的响应时间,用来评估设备的最坏表现
- 平均延迟(
- 线程公平性:单线程测试下这个指标参考意义不大,多线程场景下要看events和execution time的标准差,越小说明线程间负载越均衡,设备调度能力越好。
简化分析的参数优化建议
给你的测试命令加这些参数,能让测试结果更稳定、更易分析:
--time=N:默认测试时长10秒,可调整为60秒(--time=60),减少短时间波动对结果的影响,数据更具参考性--threads=N:当前是单线程,建议模拟多线程场景(比如--threads=4),贴近真实业务负载,对比单/多线程下的性能差异--report-interval=N:设置间隔输出统计(比如--report-interval=5),可以观察测试过程中的性能波动,而不是只看最终结果--output-format=json:输出JSON格式结果,方便用脚本批量解析不同设备的测试数据,不用手动整理文本--file-io-mode=async:默认是同步IO,可指定异步IO模式测试,看设备对异步IO的支持能力
你的测试命令
sysbench --test=fileio --file-total-size=100M --file-test-mode=rndrw run
测试输出
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
运行测试的参数配置:
线程数:1
基于当前时间初始化随机数生成器文件操作:
reads/s: 959.09
writes/s: 639.39
fsyncs/s: 2764.92吞吐量:
read, MiB/s: 14.98
written, MiB/s: 9.99通用统计信息:
total time: 10.0034s
total number of events: 15995延迟(ms):
min: 0.01
avg: 0.62
max: 10.04
95th percentile: 1.49
sum: 9976.31线程公平性:
events (avg/stddev): 15995.0000/0.00
execution time (avg/stddev): 9.9763/0.00
内容的提问来源于stack exchange,提问作者Sunaina G umesh

