服务器租用方案上的 CPU、内存、SSD 和带宽只是标称参数。真正上线后,用户体验还会受到网络路径、晚高峰拥塞、虚拟化争用、磁盘持续性能和出口策略影响。租用前测试的目标不是跑出一个漂亮分数,而是在接近真实业务的时间、地区和负载下建立基线,确认交付是否满足延迟、丢包、磁盘 IO 与带宽要求。
一、先设计测试矩阵,避免单点单次结论
测试前要明确用户主要地区、运营商、访问时段、协议和业务峰值。至少安排工作日白天、晚高峰、周末三个时段,并从两个以上典型客户端网络发起。网络质量具有方向性,客户端到服务器与服务器到客户端的路径可能不同;一次低延迟或高吞吐不能代表全天稳定。
同时记录服务器规格、操作系统、内核、测试工具版本、命令参数、测试端位置与时间。不同候选方案必须使用相同方法,否则结果不可横向比较。压力测试要取得授权,设置时长和流量上限,不要把服务商公共测速节点或生产业务打满。
| 指标 | 工具 | 重点结果 | 判读方法 |
|---|---|---|---|
| 延迟与丢包 | ping、mtr | 平均、最大、抖动、终点丢包 | 多地区、多时段对比,终点持续丢包需排查 |
| 指定路径吞吐 | iperf3 | 正反向 Mbps、重传 | 并发连接与单连接都测,晚高峰复测 |
| 互联网辅助测速 | speedtest-cli | 下载、上传、延迟 | 节点可比时才横向参考,不能单独作为验收 |
| 磁盘随机性能 | fio | IOPS、带宽、clat 百分位 | 按业务块大小、队列深度和读写比例测试 |
| 磁盘运行状态 | iostat | await、队列、%util | 高利用率伴随 await 上升通常表示饱和 |
| CPU 基线 | sysbench | events/s、总时间、延迟 | 同线程数与时长比较,最终以业务压测为准 |
二、延迟、抖动和丢包如何实测
ping 适合快速观察往返时延和终点丢包。测试 100 个包比默认少量样本更有参考价值,但仍应重复。关注最小、平均、最大和偏差;平均延迟相近时,最大值频繁尖峰或偏差较大,会影响数据库连接、远程桌面、语音和实时接口。判断标准应由业务给出,例如交互接口 P95 总延迟目标减去应用处理时间后,才是网络可用预算。
# 从主要用户地区和运营商分别执行 ping -c 100 192.0.2.10 # 至少在白天与晚高峰各执行一轮并保存完整结果
终点出现持续丢包需要重点排查。极低比例的偶发丢包也可能触发 TCP 重传,对短连接影响有限,对高吞吐长连接和实时业务影响更明显。中间某一跳显示丢包而后续节点正常,可能是该路由器限制 ICMP 响应,不代表转发真的丢包;只有从该跳开始到终点都出现相近损失,才更像路径问题。
# 显示每一跳统计,-r 报告模式,-w 宽输出,-c 指定次数 mtr -rw -c 100 192.0.2.10 # 对正向路径只能看到测试端到目标端,反向路径需从服务器或对端补测
比较候选线路时,应把晚高峰平均延迟、P95 或最大波动、终点丢包率放在同一表中。线路 A 白天快 5 毫秒但晚高峰频繁抖动,未必优于全天稳定的线路 B。还要从企业真实办公网络和主要客户区域测,而不是只在同机房测。
三、带宽测试要区分端口速率与端到端吞吐
标称 1Gbps 网卡不代表公网随时可用 1Gbps。链路共享、出口拥塞、单连接窗口、对端性能和跨网路径都会限制结果。iperf3 应在双方可控的服务器之间运行,先测单连接,再使用有限并发连接;同时测试正向和反向,以发现上下行差异。服务端开放测试端口前应配置访问控制,测试后及时关闭。
# 受控服务端运行 iperf3 -s # 客户端测试并发4连接、持续60秒的正向吞吐 iperf3 -c 192.0.2.10 -P 4 -t 60 # -R 测试服务器向客户端发送的反向吞吐 iperf3 -c 192.0.2.10 -P 4 -t 60 -R
结果应关注实际吞吐与 TCP Retr 次数。吞吐明显低于合同保证值时,先排除测试端带宽不足、CPU 单核打满、丢包和参数差异,再与服务商联合定位。若多并发高、单连接明显低,可能与跨地域时延、丢包、拥塞控制或限速策略有关。实际业务若以单连接大文件为主,就不能只用多并发成绩验收。
# 互联网测速辅助参考,记录所选节点和测试时间 speedtest-cli --simple # 如需多轮结果,应使用相同节点或记录节点差异 speedtest-cli --list
speedtest-cli 结果受测速节点、路由和节点负载影响,适合快速观察互联网出口,不适合单独证明到真实用户的带宽。正确做法是结合 iperf3、业务下载、流量监控和多个时段结果。晚高峰若吞吐持续下降且 mtr 同期抖动或丢包增加,应作为线路质量的重要证据。
四、磁盘 IO 要按随机、顺序和持续负载测试
数据库、小文件和虚拟机通常更关心 4K 随机 IOPS 与尾延迟;备份、视频和大文件传输更关心顺序吞吐。测试文件大小应明显大于可轻易命中的缓存,使用 direct=1 尽量绕过页缓存,并限制在已确认安全的空闲路径。绝不能把 fio 的 filename 指向含有数据的裸盘或生产文件。
# 在安全测试目录模拟4K随机混合读写,70%读、队列深度32、4个任务 fio --name=randrw4k --filename=/data/fio.test --size=10G --rw=randrw --rwmixread=70 --bs=4k --iodepth=32 --numjobs=4 --direct=1 --runtime=300 --time_based --group_reporting # 测试前确认磁盘空间,测试后删除明确的测试文件 df -h /data
重点读取 IOPS、带宽和完成延迟 clat 的平均值及 P95/P99。平均 IOPS 很高但 P99 延迟尖峰明显,交易系统仍可能出现超时。测试至少运行数分钟,观察开始与持续阶段差异,因为部分 SSD 短时缓存耗尽后性能会下降。不同方案必须使用相同块大小、队列深度、读写比例与文件大小。
# 测试过程中从另一终端观察磁盘 iostat -x 1 # 关注r/s、w/s、await、aqu-sz和%util # %util持续接近100%且await同步升高,通常说明设备已饱和
await 表示 I/O 请求从提交到完成的平均时间,包含排队;需要结合业务延迟目标和设备类型判断。%util 接近百分之百在传统单队列设备上常表示繁忙,但对并行能力强的 NVMe 不能孤立解释,仍要结合 await、队列与应用响应。dd 适合快速测大块顺序读写和复制速度,容易受缓存影响,也不能模拟 4K 随机并发;fio 更适合服务器租用前的磁盘 IO 实测。
五、CPU、内存与整机稳定性补充测试
网络和磁盘合格后,还要确认交付的 CPU、内存和虚拟化环境与清单一致。CPU 型号相同,虚拟机的调度争用和频率限制仍可能导致差异。sysbench 可建立通用 CPU 基线,同一线程数、时长、版本下比较 events per second 和延迟;但它不能代表 Web、数据库或编译性能,最终必须做真实业务压测。
# 核对配置并进行5分钟CPU基线 lscpu free -h sysbench cpu --threads=8 --time=300 --cpu-max-prime=20000 run # 测试同时观察各核、负载和虚拟机steal mpstat -P ALL 1 vmstat 1
若 vmstat 中 steal 持续偏高,虚拟机可能受到宿主机争用;若 si/so 持续非零且可用内存很低,存在内存压力。稳定性测试应连续运行并观察温度、降频、ECC、磁盘错误和内核日志。租用测试不能为了追求极限而影响同平台其他用户,应提前获得许可。
六、租用前测试与验收步骤清单
- 定义用户地区、业务协议、峰值流量、P95/P99 延迟和可接受丢包范围。
- 向服务商申请可测试环境,确认压力测试时间、端口、流量上限与安全规则。
- 核对 CPU、内存、磁盘介质、网卡和操作系统,记录所有工具版本。
- 从多个用户网络在白天、晚高峰和周末执行 ping 与 mtr,对比终点丢包和波动。
- 使用 iperf3 测单连接、多连接、正向和反向吞吐,以 speedtest-cli 作为辅助。
- 在安全测试文件运行 fio 随机混合测试,同时用 iostat 判断 await、队列和利用率。
- 用 sysbench 和真实应用压测建立整机基线,保存命令、原始输出、时间和测试位置。
- 把验收阈值、复测办法和不达标处理写进合同附件,开通后按同样方法复验。
小结与避坑建议
服务器租用前需要测试哪些指标,至少包括延迟、抖动、终点丢包、正反向带宽、磁盘 IOPS 与尾延迟、CPU 基线和持续稳定性。最常见的误区是只测一次 ping、用端口速率代替可用带宽、用 speedtest-cli 单个节点作验收、用 dd 的顺序高分证明数据库磁盘,以及只看 fio 平均值不看 P99。测试应覆盖晚高峰并匹配真实业务,把方法和阈值写入合同,才能让“线路好、磁盘快、带宽足”变成可复现、可比较、可追责的结论。
企业QQ咨询




