先给结论:不要先删日志、封IP或重启服务,而要先做一次“资源占用快照”,把异常流量与正常服务受影响的对应关系固定下来。保存证据的核心不是证明流量来自哪里,而是证明“同一时间、同一资源、同一路径”上,异常请求与正常请求发生了竞争。样本阶段成立的判断,规模化后经常失效,所以证据要能区分两种完全不同的解释。
假设你在小流量阶段观察到某个来源的请求集中在少数URL上,响应时间上升,于是判断它是挤占源。当请求量放大十倍后,可能发现响应时间不再线性上升,甚至正常请求先被拖慢。这说明单看“来源+数量”不足以定责,必须看资源竞争的路径。
常见的两种解释是:
两种解释都表现为“服务变慢”,但处置方向完全不同。前者要限流或隔离,后者要先修内部放大点,否则限流只治标。
不要只存一份访问日志。要按时间对齐保存三类记录,并注明采集假设。
如果异常请求上升时,资源层曲线同步上升,且应用层没有明显重试或锁等待,解释A更成立。如果资源层曲线滞后,应用层先出现缓存命中率骤降或重试激增,解释B更成立。此时应优先修内部放大点,再评估是否限流。
第一,只保存聚合值。聚合会抹掉“同一秒内正常请求与异常请求争抢同一资源”的关键对应关系。第二,只保存异常侧数据。没有正常请求的基线,就无法说明资源被挤占,只能说明有流量。第三,边排查边改配置。配置变更会改变日志字段和资源曲线,导致前后不可比。
一个实际动作是:在发现异常后,先对当前时间窗口做一次只读快照,包括日志切片、资源指标和配置版本号,再决定是否限流。这个动作的结果会直接影响下一步——如果快照显示资源曲线与异常请求同步,限流是合理的;如果不同步,应先查内部放大点,避免误伤正常用户。
个别样本成立,不代表规模化后成立。样本期可能只覆盖了低峰时段、单一入口或单一后端实例。放量后,请求会分散到多个实例,缓存行为、连接池和队列深度都会变化。因此,证据必须注明采集时段、实例范围和是否包含重试流量。缺少这些条件,结论只能作为线索,不能作为处置依据。
另外,请求量归零或抓取量下降不能单独证明处置正确。它也可能是上游主动降速、缓存自然过期或采集口径变化造成的。要排除这些解释,需要同时保留变更前后的对照窗口,而不是只看一个时间点。
保存证据的目的是定位资源竞争和内部放大点,不是用于刷量、伪装身份或规避检测。对独立内容站点而言,更稳妥的做法是围绕真实用户需求维护页面,减少无效重试和缓存穿透;对站群或伪原创内容,维护风险会随规模上升,且无法用流量证据掩盖内容价值不足的问题。证据链只回答“发生了什么”,不承诺任何排名或收录结果。
最终判断应回到一个可复查的问题:在同一时间窗口内,异常请求是否与正常请求争抢了同一类资源?如果证据能回答这个问题,后续的限流、扩容或代码修复才有依据;如果不能,先补采对照数据,再决定动作。