先给结论:如果突增流量主要落在真实用户请求上,而缓存命中率同步下降、源站CPU或带宽接近上限,优先按资源压力处理;如果请求量不大却出现大量重复回源、同一URL反复抓取或缓存状态异常,优先查配置错误。区分的关键不是看总访问量,而是看“请求来自谁、命中在哪一层、错误从哪一层开始”。
假设某站点在活动页上线后,百度缓存页面带来的回访流量突然上升。运维看到源站QPS翻了几倍,第一反应是加机器;但加完之后缓存命中率没有恢复,日志里反而出现大量带相同参数的URL。这个结果与直觉相反:如果是纯资源压力,扩容后命中率通常应回升,至少错误率会下降;如果扩容无效,说明请求结构或缓存键本身有问题。
此时应先把证据分成两组。第一组看资源:源站CPU、内存、出口带宽、连接数是否在突增期间同步抬升,抬升后是否随扩容回落。第二组看配置:缓存键是否包含无意义参数、缓存规则是否被新路径绕过、回源请求是否集中在少数URL、响应头里的缓存指令是否前后不一致。两组证据指向不同动作,不能混在一起做。
资源压力通常有明确的传导顺序:入口请求增加,缓存层先承压,未命中的请求穿透到源站,源站资源上升,最后才表现为超时或5xx。可以按下面顺序核对:
如果这些信号同时成立,下一步动作是限流、扩容或把热点内容前置到缓存层,并观察命中率是否恢复。若扩容后命中率仍不恢复,就要回到配置侧,而不是继续加资源。
配置错误更像“请求不多,但每一条都绕开缓存”。常见表现是:同一页面因为URL参数、大小写、结尾斜杠或协议差异被当成不同资源;缓存规则只覆盖了旧路径,新活动路径没有命中;响应头里的缓存指令互相冲突,导致缓存层不敢存。此时总请求量可能只是小幅上升,但回源比例异常高。
假设情境里,日志显示大量请求带?from=share这类参数,而缓存键包含全部查询参数,于是每个分享来源都生成一份独立缓存。这不是资源不够,而是缓存粒度太细。动作应是收敛缓存键、忽略无意义参数,再观察回源量是否下降。若回源量下降且命中率回升,说明主因在配置;若回源量下降但源站资源仍高,说明还有真实热点需要单独处理。
百度缓存页面反映的是搜索引擎侧保存的页面版本,它可以帮助判断抓取到的内容与当前页面是否一致,但不能单独证明源站压力或配置对错。抓取量、缓存状态或某个统计归零,也可能由抓取调度、页面改版、 robots.txt 变化或索引更新节奏解释,不能直接当成“处理正确”的证明。robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录,这些都需要和服务器日志、缓存命中数据分开核对。
更稳妥的做法是:把百度缓存页面的快照时间、快照内容与当前页面做一次对照,同时看同一时间段的源站日志。如果快照内容正常、日志回源也正常,问题更可能在资源侧;如果快照内容与当前页面差异明显、日志又显示重复抓取,问题更可能在配置或发布流程。
这套顺序的价值在于:每一步都有可核对的结果,结果决定下一步,而不是靠“感觉像压力”或“感觉像配置”来选方向。只要先确认请求结构和命中层级,资源压力与配置错误通常能在同一轮排查里分开。