先给结论:访问量突增期间,资源压力的特征是“同一配置下,请求越多越慢、错误越集中在超时和限流”;配置错误的特征是“请求量还没到瓶颈,特定路径或特定状态码就已稳定失败”。判断顺序应该是先看错误分布是否随路径收敛,再看资源曲线是否随请求量同步恶化,最后才动配置。
访问量突增时最容易犯的错,是打开监控大盘看整体 5xx 比例,然后直接归因。你需要先选定一个具体对象:例如外链包指向的那个落地页,或承载这批链接跳转的一组 URL。把它单独拉出来,记录三样东西:该路径的请求数、响应时间分位、状态码构成。只有这个粒度,才能区分“所有页面一起变慢”和“只有这一组页面失败”。
如果整站都在变慢,且慢的幅度与总请求量大致同向,更接近资源压力。如果只有外链包落地路径在报错,而站内其他页面正常,配置错误的可能性明显更高。这个动作的结果会直接决定下一步:前者要扩容或限流,后者要查规则而不是加机器。
资源压力通常表现为超时、连接被拒、上游 502/504 增多,而且这些错误会随着并发上升而扩散到不同路径。配置错误则往往更“整齐”:某一类请求稳定返回 403、404 或 500,且与请求量关系不大,甚至在低峰期也能复现。可以把突增前后的状态码构成做对比,重点看新增的错误码是不是集中在少数几个值上。
这里要提醒一点:请求量或抓取量归零,并不能单独证明某个处理是对的。它也可能是对方降低了抓取频率、缓存命中改变、或统计口径调整造成的,需要结合状态码和响应时间一起看。
很多“配置错误”其实是配置没生效。常见的情况包括:规则写在了错误的层级、被更靠前的规则覆盖、缓存了旧版本、或者只在部分节点上发布。验证方法不是看后台是否显示“已保存”,而是用实际请求去触发那条规则,观察返回是否符合预期。
例如你为外链包落地页设置了跳转或限流规则,可以构造一个带明确特征的请求(假设场景,非真实项目):请求目标路径并附带一个可识别的查询参数,然后看响应头、状态码和最终落地内容是否与规则一致。如果规则声称会返回 301,实际却返回 200 且内容未变,那问题在配置生效环节,不在服务器负载。这个结果会把你从“加资源”引向“修发布流程”。
资源压力的证据是相关性:CPU、内存、连接数、磁盘 IO 中至少一项的上升趋势与请求量上升趋势同步,且在请求回落后随之回落。如果请求量已经回落,但错误率和响应时间没有恢复,说明瓶颈可能被卡在某个未释放的资源上,比如连接池耗尽或队列积压。
反过来,如果请求量并不高,资源占用也很平稳,但错误持续存在,就应该优先怀疑配置。此时继续扩容通常不会改善结果,只会增加成本。可以用一个短窗口做对照:在低峰期主动发起少量同类请求,看是否仍然失败。低峰期也失败,基本可以排除纯资源压力。
基于以上判断,可以按这个顺序推进:
需要说明适用边界:这套方法针对的是“同一批外链带来的访问量变化”这一场景,换成站内推荐流量或广告流量时,错误分布和资源曲线可能不同,不能直接照搬。另外,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录,这些与访问量突增的归因是两件事,不要混在一起判断。最后,HTTPS 不保证安全无漏洞或排名,它不能作为判断资源压力或配置错误的依据。把这些边界分清,你的下一步动作才不会跑偏。