使用已准备的非业务测试文件,测量一条明确的读取路径;禁止裸盘写、自动建大文件、清页缓存和未授权生产压测。
前提、模式与预算
仅限获授权隔离环境,已安装 fio,已有至少 256 MiB 的受控、真实数据测试文件。文件不能是业务文件、设备节点、符号链接或未确认的稀疏文件。需要文件系统支持相应直接 I/O 条件,先按本机文档核对。
本例限制单作业、单在途、最多约 20 秒、100 IOPS、4 KiB 请求和 256 MiB 读取范围,仅用于流程验证,不是峰值测试。数据集大小和限速值是示例,不是验收阈值。fio 参数依据见 官方文档。
第一步:核对已存在的测试对象
将占位路径替换为批准的普通测试文件,在目标执行:
realpath /approved/test/data.bin
stat /approved/test/data.bin
findmnt -T /approved/test/data.bin
df -h /approved/test
fio --version
确认解析路径与批准位置一致,文件身份、数据准备记录与大小符合方案;工具或字段不可用时记录缺口。不要为补齐条件临时创建业务盘上的大文件。
第二步:预审参数与停止方式
只读安全检查、禁止创建和固定目标共同减少误操作,但不能替代路径核验。外层 timeout 结束后仍需确认进程退出;处于内核不可中断等待的任务不保证能立即结束。
结果输出到批准的工作站或受控小文件,不开启每 I/O 明细日志。若保存 JSON,使用独立结果名并检查可用空间,不覆盖旧结果。
第三步:运行一次有界读取
timeout --signal=INT --kill-after=5s 25s fio --name=bounded-read --filename=/approved/test/data.bin --allow_file_create=0 --readonly --rw=randread --bs=4k --ioengine=psync --iodepth=1 --numjobs=1 --direct=1 --size=256m --time_based=1 --runtime=20 --rate_iops=100 --output-format=json
命令模式仅在前提成立时使用。psync 与单在途用于限制规模,不代表设备峰值能力。direct 不支持或对齐错误时判为条件不满足,不静默取消 direct 再把结果标成同一测项。
任何读错误、业务影响、平台告警或预算越界立即按预案停止。不要重试为无界循环。
第四步:检查有效性
核对退出状态、错误字段、实际读取量、请求时延和达成深度。外层 timeout 到期返回异常状态时,结果按中断记录,而不是忽略错误继续写通过。
将工具窗口与只读设备观察关联。低于期望吞吐可能是主动限速的结果,本例不能用于判断最大 IOPS。缓存、虚拟化和控制器层仍影响解释,见 直接 I/O。
第五步:结束与保存
确认本次 fio 已退出,测试文件未被写或删除,未改变缓存与设备配置。保存工具版本、完整参数、文件身份、输出、窗口和异常。需要其他模式时另建测项并重新审查预算,不在此例上直接追加写入。
本流程不验证掉电持久性、不验证全部盘位、不证明物理盘健康,也不自动生成通过阈值。结果交接格式见 测试证据。
服务器知识库 · 系统架构 · 数据路径 · 测试验收 · 工程参考
公开资料核对:2026-10-07。文档类型:How-to。逻辑图、场景推演与报告模板为原创,不代表实测结果、厂商内部设计或公司制度;操作仅限获授权的目标和环境。