结论先行:压测的价值不在压出峰值数字,而在压出瓶颈位置。要做到这一点,观测侧要提前做四件事:给压测流量打标记并与生产流量分开统计、把采样临时切到全量、按链路节点而不是按接口看耗时、压测结束当天恢复常态并清理压测数据。否则压测期间的指标会污染生产基线,事后也查不到瓶颈到底在哪一跳。

为什么压测常常"压完了但没结论"

常见的压测报告只有两个数字:能扛多少并发、平均耗时是多少。这两个数字能回答"够不够用",回答不了"为什么不够用"。

原因通常有三点:压测流量和真实流量混在同一个指标里,事后无法区分;采样率沿用常态配置,异常样本恰好被丢掉;耗时只统计到接口层,看不出是网关、应用、中间件还是数据库在拖后腿。三点都属于可观测侧的配置问题,不需要更换工具。

压测前:三件事必须先做

给压测流量打标记

在入口处为压测请求注入统一标识,并让它随链路全程透传,包括异步与消息环节。有了标识,就能在同一张图上把压测与真实流量拆成两条曲线,也能在压测结束后按标识精确清理数据。

没有标识的替代做法是限定压测时段并单独记录时间窗,缺点是压测与业务高峰重叠时无法区分,也不便于清理。

采样切到全量,并设置上限

常态采样通常为省钱而设,压测期间瓶颈恰恰出现在少量请求上,低采样会直接把证据丢掉。建议在压测窗口内对被测接口开启全量采集,同时写明两条约束:单次全量最长持续多久、存储水位超过多少时强制回落。保护措施本身不能变成新的故障源。

告警静默要带期限

压测必然触发耗时与错误率告警,不静默会淹没值班通道。静默应按对象加时间段整体设置,注明原因、责任人与解除时间,到期自动恢复。压测结束后忘记解除静默,是后续真实故障漏报的常见来源。

压测中:四类指标要一起看

指标看什么能回答的问题
分位耗时被测接口的 P95、P99 随并发的变化性能是平缓劣化还是出现拐点
链路节点耗时占比每一跳的耗时占比与随并发的变化瓶颈在哪个服务或哪一次调用
中间件与数据库指标消息堆积、慢语句数、锁等待时长、连接池占用应用层之后还有没有隐藏瓶颈
实例级资源水位按实例看 CPU、内存、线程池,不看集群均值是否存在少数实例先被打满

第四点最容易被跳过。集群均值会把少数高负载实例掩盖掉,而这些实例往往就是压测中先报错的那批。分位耗时与实例级水位结合起来看,才能区分"整体容量不足"与"负载不均"这两种完全不同的结论。

另建议在压测过程中同步观察错误率的结构变化,而不只看总量:超时、限流、真实报错应当分开统计。三类错误的处置方向完全不同,混在一起容易得出"系统扛不住"这种无法行动的结论。

压测后:当天要收尾

  • 恢复采样与告警。压测结束即回到常态采样率,解除全部静默,并核对一次解除结果。
  • 清理压测数据。按标识删除或单独归档压测产生的链路与日志,避免污染生产基线与容量统计。
  • 产出瓶颈清单。按"环节—现象—证据—建议"四列输出,每个瓶颈都要能指向具体链路或语句,而不是笼统的"数据库压力大"。
  • 修正容量结论。用压测得到的实际换算关系更新此前的预测斜率,并把扩容建议接到工单上,而不是停在报告里。

落地清单

  • 压测方案里明确观测侧配置:流量标识、采样策略、静默范围与期限。
  • 被测接口清单提前确定,逐条配置全量采集与上限。
  • 压测看板按四类指标组织,分位耗时与实例水位必须有。
  • 结束当天完成采样恢复、静默解除与数据清理,并留记录。
  • 压测结论进入下一轮容量预测与扩容计划,形成固定节奏。

三个常见坑

  • 压测流量没标记,事后无法与真实流量区分,基线与容量统计被污染。
  • 只看平均值与总量错误率,拐点和结构性变化全部被抹平。
  • 静默忘记解除,压测结束后真实告警被挡在门外。

如果您正在规划相关建设,欢迎预约咨询,奇摩技术团队可结合现网情况给出可落地的清单与口径建议。