测试网络时,先区分“延迟(Latency)”与“带宽(Throughput)”。延迟用 ping/mtr 测试多点平均值和抖动;带宽用 iperf3 在不同时间段跑多次,注意单连接与多连接结果差异。真实用户体验还需做 TCP/HTTP 层面的测试,用 curl/httperf/wrk 模拟请求,观察 95%、99% 响应时间。
1) 在不同时间段(高峰/非高峰)重复测试;2) 从目标客户网络出口到马来西亚机房做端到端测量;3) 记录丢包率与抖动,因为对实时应用影响更大。
iperf3(带宽)、mtr/ping(延迟/路由)、wget/curl/wrk(HTTP 层)以及 tcpdump(抓包分析)是必备工具。
测试时关闭不必要的防火墙规则与限速策略,保证测试流量不会被云平台 QoS 干扰;记录实例规格与网络类型(共享或独占)以便比对。
对于数据库、搜索、文件存储类应用,磁盘IO 是决定吞吐与延迟的核心。用 fio 进行随机/顺序、不同 block size 的读写测试,分别测 IOPS(小块随机)和吞吐(大块顺序)。同时观察 iostat 的 await、svctm 与 %util 指标。
把测试做在业务相同负载下:同样的实例规格、同样存储类型(云盘/本地盘/SSD/普通盘),并做持久化长跑测试,排查缓存效应带来的假象。
推荐用 fio,设置样例:randread/randwrite,bs=4k、16k、64k,多线程/多进程并发,运行时间 >= 300s,记录稳定期的平均值与峰值。
CPU/内存相关的性能测试要分单线程与多线程场景。用 sysbench 或 stress-ng 做 CPU 计算、内存带宽和 malloc/free 压力测试,结合 perf/top/htop 观察 CPU 利用率、上下文切换、软中断与中断分布。
关注单核性能(对高频交易或单线程应用重要)、多核扩展性(并行处理)、内存带宽与延迟(大型缓存/内存数据库),以及 CPU 的频率浮动与节能策略对性能的影响。
若是云主机共享宿主机资源,需多次在不同时间段跑基准,判断是否存在“偷跑(noisy neighbor)”现象,可通过迁移或选择专属主机来规避。
并发测试要模拟真实业务模式:请求分布、会话保持、长连接/短连接比例、上传/下载流量比。用 wrk/ab/jmeter/siege 做水平放大测试,逐步增加并发,记录吞吐(RPS)、响应时间分位数与错误率。
在并发测试中加入长时间运行与故障注入(如网络抖动、磁盘故障模拟)来验证系统在极端条件下的表现与自愈能力。
并发测试时要同时采集 CPU、内存、磁盘 IO、网络带宽与内核队列长度(如 netstat、iostat、vmstat),配合日志分析定位瓶颈。
把每项测试的关键数值(延迟 P95/P99、IOPS、吞吐、RPS)映射到业务 SLA,计算所需实例数量与规格,比较不同云商的价格/性能比。例如:在目标并发下是否需要网络优化型实例、专用带宽或本地 SSD。
1) 先做基准小规模测试;2) 量化每项指标与业务关系;3) 估算扩容曲线与成本;4) 在候选机房/实例上做 A/B 测试并记录可重复性。
上线后继续用 Prometheus+Grafana 或云监控持续采集,建立告警阈值(如 IOWait、网络丢包、响应 P99 超标),并定期重跑基准以应对平台变更。