先给有条件的结论:如果突增流量分散在多个页面、响应时间随并发上升而缓慢劣化、错误以超时和5xx为主,更像资源压力;如果只有特定路径或特定主机名异常、错误集中为4xx或重定向循环、且流量并不高时也复现,更像配置错误。这个判断只在你能拿到分层日志和可对照的时间窗时成立,否则两者会互相伪装。
访问量突增时最容易犯的错,是拿总请求数当唯一证据。总量上升既可能压垮后端,也可能只是把原本隐藏的配置问题放大。要区分,先按层拆开:
关键动作:把突增前后各取一个等长窗口,按状态码和路径分组对比。如果错误只集中在某几个路径,而其他路径在同样流量下正常,资源压力的解释就被削弱,配置错误的嫌疑上升。这个结果会直接决定下一步是扩容还是改规则。
资源压力的一个可检验特征:流量回落后,异常应随之缓解。配置错误则相反,它往往在低流量下依然稳定复现。
假设一个场景:某天上午访问量约为平日的数倍,站点开始出现大量5xx。若把入口流量限回平日水平后,5xx仍在同一路径上按固定比例出现,那么“纯资源压力”不足以解释,应该转向检查该路径的重写规则、上游地址或缓存键配置。反之,若限流后错误消失、放开后重现,资源压力更可信。
这里有一个会让结论失效的反例:如果配置错误恰好只在缓存未命中时触发,而突增流量导致缓存命中率骤降,那么低流量下可能因为命中缓存而不复现,你会误判为资源压力。遇到这种情况,必须清空缓存或强制回源再测一次,否则前面的对照不成立。
主域名选择相关的异常,常被整体流量掩盖。要判断是资源还是配置,先确认异常是否只属于某一个主机名:
www与不带www表现不同:属于典型的规范化配置问题,而非容量问题。动作上,分别对每个主机名发同一组请求并记录状态码与耗时。若差异稳定存在,就不该用“流量太大”解释全部现象。这一步的结果会缩小排查范围,避免在扩容上浪费动作。
访问量突增不一定来自用户。爬虫抓取、监控探针或预取都可能推高请求数,但它们对资源配置的含义不同。
可核对的证据是请求特征:来源分布、请求间隔、是否只抓取特定模板、是否忽略robots.txt。如果突增高度集中在列表页和详情页且间隔规律,抓取压力的可能性更高。需要提醒的是,robots.txt的抓取限制不等于可靠的索引移除,站点地图也不保证收录,因此不能仅凭抓取量归零就断定处理正确——请求减少还可能来自爬虫自身调度变化或网络中断。
若确认是抓取压力,下一步是调整抓取预算或缓存策略,而不是直接扩容;若确认是用户压力,才进入容量评估。
每一步的结果都应改变下一步的方向,而不是并行地同时扩容和改规则,否则你无法知道哪个动作真正解决了问题。