linux下硬件测试
一、硬盘,测试软件fio
fio 高频必调参数(测试时重点关注)
| 参数 | 说明 | 典型取值 |
|---|---|---|
--name= | Job 名称,必填 | randread_4k、seq_write等 |
--filename= | 测试目标:文件路径或裸设备 | /data/fio.test或 /dev/sdb⚠️裸盘会覆写数据 |
--rw= | 读写模式 | randread/ randwrite/ read/ write/ randrw |
--bs= | 块大小(Block Size) | 4k(测 IOPS/数据库)、8k(Oracle/TPC-C)、128k~1M(测吞吐) |
--size= | 测试文件总大小,建议 > 物理内存防缓存干扰 | 10G、50G |
--iodepth= | I/O 队列深度(异步引擎有效),模拟并发待处理请求数 | HDD:1~4 / SATA SSD:16~32 / NVMe:32~128 |
--numjobs= | 并发 job 数(进程/线程) | 1 或多核并行常用 4~$(nproc) |
--ioengine= | I/O 引擎 | libaio(Linux 异步,最常用)、io_uring(内核≥5.1)、psync |
--direct= | 是否绕过 Page Cache,1=O_DIRECT(真实磁盘性能),0=走缓存 | 测磁盘务必设 1 |
--runtime= | 测试持续时间(秒) | 60~300 |
--time_based | 按时间跑满 runtime(即使 size 写完也循环) | 通常加此参数 |
--group_reporting | 合并多 job 汇总输出 | 通常加此参数 |
--ramp_time= | 预热时间,数据不计入结果 | 10~30 |
--rwmixread= | randrw/rw 模式下读占比(%) | 70(70%读30%写) |
--fsync= | 每次 N 次写后调 fsync() 刷盘,模拟 WAL 日志场景 | 0(默认不刷)/ 1(每次写刷) |
--thread | 用线程而非 fork 进程(省资源) | 可选 |