结论有前提:如果突增期间所有动态请求一起变慢、静态资源仍由缓存或CDN正常返回,优先怀疑资源压力;如果只有某一类请求失败、响应头或状态码出现规律性异常,即使流量不高也复现,那更可能是配置错误。这个判断只在你能拿到分层数据时成立,下面说明它何时失效。
资源压力的典型表现是“面”的退化:数据库连接池排队、应用进程CPU打满、带宽被占满,结果是一批本来正常的请求同时变慢,且慢的幅度随并发上升而扩大。配置错误更像“点”的断裂:某个路径返回403、某个上游超时、某条重写规则把静态请求打回应用,表现为特定URL、特定方法或特定来源的请求异常,而其余请求速度正常。
可操作的区分动作:在突增窗口内按URL分组统计状态码和耗时分布。若5xx集中在少数几个动态接口,且这些接口在低流量时也偶发失败,指向配置或代码层;若5xx或超时广泛分布在多个互不相关的接口上,且低流量时全部正常,指向资源压力。
资源压力的曲线通常与访问量同步:流量上来,耗时上升;流量回落,耗时恢复。配置错误不一定跟随流量,它更常跟随一次发布、一次规则调整或一次证书与上游变更。因此要把突增开始时间与最近的配置变更时间并列比较。
如果两者接近,不能直接归因。一个可用的排除动作是:在低峰期用相同路径、相同请求头复现。低峰期仍失败,配置错误的可能性上升;低峰期完全正常,则更支持资源压力。这一步的结果直接决定下一步——前者去查配置与依赖,后者去查容量与限流。
假设突增期间静态资源大面积超时,看起来像带宽或CDN压力,但实际上是一次缓存规则变更导致回源比例骤增,源站被打满。此时“静态资源慢”并不等于纯资源压力,而是配置变更诱发的资源压力。反过来,某些配置错误(如连接池上限设得过低)只在流量升高时才暴露,低峰期无法复现,容易被误判为纯容量问题。
所以判断不能只看现象类别,还要看“是否可复现”和“是否与变更时间重合”这两个条件。两者都满足时,先处理配置;两者都不满足时,先处理容量。
需要提醒的是,抓取量或请求量归零并不能单独证明配置正确,它也可能是上游限流、DNS解析变化或监控采集中断造成的。把监控数据与真实用户侧采样对照,才能减少误判。
如果证据指向资源压力,短期动作是限流、扩容或降级非关键功能,并记录扩容后耗时是否回落;如果指向配置错误,短期动作是回滚最近变更并复测同一路径。无论哪种,都应在突增结束后补一次低峰基线测试,把本次突增期间的指标与基线对比,确认问题是偶发还是结构性。只有基线稳定,后续的容量规划或配置调整才有可靠参照。