准备测试环境要先确认服务器硬件与网络拓扑,建议记录CPU、内存、磁盘类型(如SSD或NVMe)、RAID配置以及是否启用虚拟化。关闭非必要服务,确保测试期间系统负载稳定。为避免系统缓存干扰,测试前清空文件系统缓存或使用直写标志(如fio的direct=1)。
网络方面,确认是否为CN2专线指向的出口IP、是否经过公网加速节点以及两端MTU设置一致。若为分布式测试,保证客户端与服务端时间同步,开启必要的防火墙端口并记录带宽链路质量。
常用工具包括:对磁盘IO推荐使用 fio(灵活支持顺序/随机、读写比、块大小、队列深度);监控工具有 iostat、vmstat、collectl 用于采集IOPS/延迟/CPU等待;网络吞吐量测试推荐 iperf3。另有 ioping 用于测量延迟分布,vdbench用于企业级磁盘压力测试。
一个典型fio命令示例(顺序写):fio --name=seqwrite --filename=/dev/sdb --iodepth=32 --rw=write --bs=1m --direct=1 --size=5G --runtime=300 --time_based --numjobs=1 --group_reporting。将关键参数改为随机读写测试可用 --rw=randread/randwrite,调整 --bs(块大小)和 --iodepth(队列深度)以模拟真实负载。
测试策略建议:先做冷启动测试(清缓存后),再做温热测试;分别测试不同块大小(4K、64K、1M)和不同并发(iodepth 1/16/32),记录 IOPS、吞吐量(MB/s)和平均延迟(ms)。每次测试至少运行几分钟以稳定结果。
在服务端运行:iperf3 -s;在客户端运行:iperf3 -c <服务器IP> -P 4 -t 60,以四并发流测试60秒。根据需要增加 -w(TCP窗口)或使用 UDP(-u)并设置带宽(-b)。记录带宽、丢包率和抖动。
针对CN2专线,应测试不同时间段并多次复测以排除临时路由波动。若要模拟高并发真实场景,可通过多客户端并发或增加P参数(流数)来逼近链路上限,注意同时监控端系统CPU与中断以避免单端瓶颈。
分析时重点看三项:IOPS(并发小块性能)、吞吐量(大块带宽)、和延迟(平均/分位)。用iostat/collectl结合fio输出交叉验证,注意当吞吐量高但延迟也高时说明存在瓶颈。检查是否因CPU、网络或RAID缓存引起假高值。
常见误区包括未禁用缓存导致的虚假高吞吐量、单次短时间测试不可代表长期表现,以及只测单一块大小或队列深度导致结论片面。建议制作标准化测试矩阵(块大小、读写比、iodepth、并发)并保存原始日志以便对比。