工具清单
测试内容 | 工具 | 安装示例 | 使用示例 |
---|---|---|---|
综合性测试 | sysbench | CPU、内存、磁盘、数据库等 | |
磁盘性能 | fio | sudo apt instal fio | fio --name=seq_write --filename=testfile --direct=1 --ioengine=libaio --rw=write --bs=1m --size=10G --iodepth=32 --numjobs=4 --runtime=60 --group_reporting |
网络性能 | iperf3 | sudo apt instal iperf3 | A主机开启服务,B主机发送数据包 |
Web压力测试 | webbench |
fio
要使用 FIO(Flexible I/O Tester)测试随机 4KB 读写性能,可以通过以下命令配置测试参数。这些命令会模拟典型的随机小文件读写场景(常见于数据库、虚拟化等场景)。
大文件读写
- 大文件连续写(Write)
fio --name=bigfile_write_test \
--filename=/mnt/test_bigfile.dat \
--filesize=20G \
--rw=write \
--bs=64k \
--iodepth=32 \
--numjobs=2 \
--ioengine=libaio \
--direct=1 \
--time_based \
--runtime=120 \
--ramp_time=10 \
--group_reporting \
--iodepth_batch_submit=32 \
--iodepth_batch_complete=32
- 大文件连续读(Read)
fio --name=bigfile_read_test \
--filename=/mnt/test_bigfile.dat \
--filesize=20G \
--rw=read \
--bs=128k \
--iodepth=64 \
--numjobs=4 \
--ioengine=libaio \
--direct=1 \
--time_based \
--runtime=120 \
--ramp_time=10 \
--group_reporting
随机4K读写
- 随机 4KB 读测试(主要测 IOPS 和带宽)
fio --name=randread_4k --ioengine=libaio --direct=1 --thread --rw=randread --bs=4k --size=10G --numjobs=4 --runtime=60 --group_reporting --iodepth=32
参数说明:
--name=randread_4k
:测试任务名称--ioengine=libaio
:使用 Linux 异步 I/O 引擎(性能更优)--direct=1
:直接 I/O(绕过系统缓存,测试真实磁盘性能)--thread
:使用线程模式(而非进程)--rw=randread
:测试模式为随机读--bs=4k
:块大小为 4KB--size=10G
:总测试数据量(建议大于内存,避免缓存影响)--numjobs=4
:并发任务数(根据 CPU 核心数调整)--runtime=60
:测试持续时间(秒)--group_reporting
:汇总所有任务的结果--iodepth=32
:I/O 队列深度(SSD 通常设置 16-64,HDD 建议 1-4)
- 随机 4KB 写测试
fio --name=randwrite_4k --ioengine=libaio --direct=1 --thread --rw=randwrite --bs=4k --size=10G --numjobs=4 --runtime=60 --group_reporting --iodepth=32 --do_verify=0
参数说明(新增/差异):
--rw=randwrite
:测试模式为随机写--do_verify=0
:关闭写后验证(加快测试速度,如需验证数据完整性可设为 1)
- 随机 4KB 混合读写测试(70% 读 + 30% 写)
fio --name=randrw_4k --ioengine=libaio --direct=1 --thread --rw=randrw --rwmixread=70 --bs=4k --size=10G --numjobs=4 --runtime=60 --group_reporting --iodepth=32
参数说明(新增):
--rwmixread=70
:混合读写中读占比 70%(写占比 30%)
关键结果指标解读
测试完成后,重点关注以下指标:
iops
:每秒完成的 I/O 操作数(越高越好)bw
:带宽(MB/s),即iops × 4KB ÷ 1024
lat
:延迟(包括 min/avg/max 延迟,越低越好)
注意事项
- 测试前确保目标磁盘有足够空间(至少大于
--size
指定的容量) - 避免在生产环境执行写测试(可能覆盖数据)
- 根据存储类型调整参数:
- SSD:
iodepth
可设 16-64,numjobs
可等于 CPU 核心数 - HDD:
iodepth
建议 1-4(机械硬盘随机性能有限)
- SSD:
- 多次测试取平均值(避免系统波动影响结果)
通过以上命令,可以快速评估存储设备在随机 4KB 场景下的性能表现。