主机性能测试工具

mtain 2025年08月01日 96次浏览

工具清单

测试内容工具安装示例使用示例
综合性测试sysbenchCPU、内存、磁盘、数据库等
磁盘性能fiosudo apt instal fiofio --name=seq_write --filename=testfile --direct=1 --ioengine=libaio --rw=write --bs=1m --size=10G --iodepth=32 --numjobs=4 --runtime=60 --group_reporting
网络性能iperf3sudo apt instal iperf3A主机开启服务,B主机发送数据包
Web压力测试webbench

fio

要使用 FIO(Flexible I/O Tester)测试随机 4KB 读写性能,可以通过以下命令配置测试参数。这些命令会模拟典型的随机小文件读写场景(常见于数据库、虚拟化等场景)。

大文件读写

  1. 大文件连续写(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
  1. 大文件连续读(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读写

  1. 随机 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)
  1. 随机 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)
  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 延迟,越低越好)

注意事项

  1. 测试前确保目标磁盘有足够空间(至少大于 --size 指定的容量)
  2. 避免在生产环境执行写测试(可能覆盖数据)
  3. 根据存储类型调整参数:
    • SSD:iodepth 可设 16-64,numjobs 可等于 CPU 核心数
    • HDD:iodepth 建议 1-4(机械硬盘随机性能有限)
  4. 多次测试取平均值(避免系统波动影响结果)

通过以上命令,可以快速评估存储设备在随机 4KB 场景下的性能表现。