要搭建稳定可复现的压测环境,首先要明确测试目标:是否验证链路质量、并发能力或业务层TPS/RPS。环境搭建分为三层:流量发生端(压测机)、被测服务(位于新加坡服,走CN2专线或优化路由)和监控采集层(链路/主机/应用)。
压测机建议采用虚拟机或裸金属并行方案,网络出口保证与真实用户路径一致,必要时通过云厂商或物理机部署在中国境内CN2出口节点。被测服务应保持与线上一致的配置(镜像、数据库连接池、TLS配置等),避免“环境偏差”。
监控层需接入:主机级(CPU/内存/磁盘IO)、网络级(接口带宽、错误、重传)、应用级(QPS、RT、错误码),以及链路层的路由/AS信息。部署Prometheus/Grafana、tcpdump、sFlow/NetFlow数据采集能大幅提升问题定位效率。
最后,准备好统一的测试数据和回放脚本,保证每次压测的输入一致,这对对比不同版本或优化前后的效果尤为重要。
使用traceroute/tracepath确认出站路径是否走CN2,并记录每跳延迟与丢包;必要时与运营商确认BGP策略。
通过iperf3/ping/qqperf采集基线延迟、带宽及抖动,用于后续压测结果的比较。
常见工具包括:iperf3(链路吞吐)、wrk/wrk2(HTTP请求压测)、JMeter(协议丰富且可脚本化)、k6(现代化高性能JS脚本)、siege、httperf,以及低层网络工具tcpdump、tc(流控)、qperf等。选择依据:协议类型、并发模型、资源占用及可复现性。
如果目标是验证TCP带宽与丢包,首选iperf3;若关注HTTP业务的RT分布、p95/p99延迟、连接数,则用wrk2或k6更合适。需要TLS/HTTP2/GRPC场景时,优先选择支持这些协议的工具并开启真实证书链。

对于高并发场景,工具本身的瓶颈需注意:单台压测机网络栈或CPU可能成为限制,常见做法是分布式压测,多台压测机并发发流并统一收集结果,确保压测机并非瓶颈。
优先选轻量且支持异步IO或协程模型的工具(如wrk、k6),以模拟高并发而不占用过多CPU。
选择能导出原始请求日志与RT分布的工具,便于事后分析与复现。
标准压测流程建议包括:需求定义、环境搭建、基线采集、场景设计、预热与稳定性测试、正式压测、数据采集与分析、回归验证。每一步需记录配置、时间戳和版本信息,确保可复现。
场景设计需覆盖多类业务模式:短连接小请求(API调用)、长连接/流量密集(大文件或视频)、突发流量(spike)、耐久压力(soak test)。分别进行并记录不同QPS下的RT分布、错误率和资源使用率。
预热阶段用于使JIT/缓存/连接池达到稳定状态,建议预热持续时间按服务特性设定(通常为5-15分钟)。稳定性测试用于检测系统在目标负载下的持续表现(推荐30分钟到数小时视业务重要性而定)。
为了保证可信度,要避免压测机或采集链路成为瓶颈。压测结果应与监控指标对齐:例如RT上升是否伴随CPU飙升、网络丢包或后端数据库延迟上升。
所有数据采集工具时间同步(NTP),便于将链路事件、应用日志与压测结果关联分析。
保存压测脚本、压测机镜像、被测服务版本与配置,必要时在独立环境进行回放验证。
关键指标包含:平均延迟(Avg RT)、分位延迟(p50/p95/p99)、吞吐量(Mbps或RPS)、并发连接数、丢包率、重传率、TLS握手时延、错误率(5xx/异常)。在CN2路径下,网络层指标(延迟/抖动/丢包)对应用层RT影响尤为显著。
延迟:使用ping/traceroute和应用层RT对照,观察是否存在跨境链路或出口拥塞引起的跳点延迟异常。p95/p99通常比平均值更能反映用户体验,p99偏高说明偶发性问题或队列延长。
吞吐量与并发:通过iperf3或压测工具记录带宽利用率,当链路接近容量时可能出现丢包和重传,应用层RPS未必线性增长。结合网卡错误、队列长度、TCP重传率判断是否为网络瓶颈。
丢包率与重传:即使丢包率是低比例(如0.1%),在高并发和短连接场景也会显著拉高RT。CN2通常丢包较低,但跨境链路或出口设备故障可能产生突发丢包,需关注丢包分布(持续性 vs 峰值)。
新加坡-中国内地路径:平均单向延迟期望在40-80ms区间(视具体出口而定),p95不应超过200ms。
丢包率建议小于0.1%,重传率尽量接近0;若持续高于0.5%需调查路由或链路设备。
带宽利用率不宜长期超过85%,并发连接数需与服务连接池配置匹配,以避免队列积压。
链路层:先看丢包与延迟突增,使用tcpdump+tshark分析TCP三次握手、重传和RTO;检查MTU/Path MTU问题导致分片或ICMP被丢弃。与运营商核对BGP路由是否偏移或存在黑洞。
系统层:排查网卡中断、RX/TX队列溢出、NIC驱动/固件问题。查看socket状态(TIME_WAIT、SYN_RECV等),调整ephemeral port、connect timeout、TCP窗口和拥塞控制(如是否启用BBR)。
应用层:检查线程/协程池、数据库连接池、队列长度及依赖服务的延迟。对短连接业务,连接建立/关闭开销和TLS握手代价会影响RT,考虑使用连接复用、Keep-Alive或HTTP/2。
TLS优化:证书链过长或不合理的重协商会增加握手时间,建议启用TLS会话缓存、OCSP stapling并尽量使用现代密码套件以减少往返。
常见优化实践包括:使用CDN或接近用户的边缘节点分担流量、开设多条CN2出口以做流量分散、对长尾请求做降级或限流、在压测前确保后端缓存/预热并合理设置熔断策略。