先看一个可区分信号:如果突增同时抬高源站CPU、内存、连接数,而响应时间随并发线性变差,优先按资源压力处理;如果资源曲线平稳、只有5xx或超时集中在特定路径、特定状态码或特定跳转上,优先按配置错误处理。两者可能同时存在,但处理顺序不同,代价也不同。
访问量突增时最容易犯的错,是立刻改配置或重启服务。重启会清掉连接队列、错误日志上下文和进程状态,之后你很难判断峰值是真实流量、爬虫抓取,还是某个上游重试放大。
建议先做三件事:保留最近一段时间的访问日志、错误日志和资源监控快照;记录当前生效的解析、跳转和缓存规则;确认突增是否只发生在某个入口路径。这个动作的结果决定下一步:有现场,才能把“资源不够”和“配置写错”分开;没有现场,后续只能靠猜。
资源压力的典型特征是全局性的:多个路径同时变慢,静态文件和动态接口都受影响,连接数、线程池或数据库连接接近上限,扩容或限流后指标随之缓解。
如果符合这些条件,保留现有配置、先扩容或限流是合理选择。代价是成本上升,而且如果背后其实是配置错误,扩容只是把问题推迟。
配置错误的特征是局部的、可重复的:资源并不紧张,但某些请求稳定失败。常见来源包括跳转链写成循环、规范标签指向错误地址、缓存规则把动态内容当静态缓存、以及安全策略误拦截正常请求。
这类情况应优先查配置,而不是加机器。动作可以是:先在测试环境复现,再对比改动前后的规则差异,确认后再回滚或修正。结果是错误定位到具体规则,后续只需小范围修复。
假设某天上午访问量突然翻倍,监控显示源站CPU从四成升到九成,同时所有页面响应时间都变长。此时先按资源压力处理:临时限流并扩容,观察半小时。如果响应恢复、CPU回落,说明主要是资源不足;如果CPU回落但某类请求仍大量超时,说明配置问题被流量掩盖了。
反过来,假设CPU平稳,只有带参数的搜索页返回大量5xx,其他页面正常。这时先查配置:检查该路径的重写规则、缓存键和参数处理逻辑。修正后如果5xx消失,就不需要扩容。这个例子的数字仅用于说明比较方法,不代表任何真实站点。
选择先保资源,前提是资源指标确实接近上限,且突增范围广。选择先查配置,前提是资源有余量,错误集中且可复现。两者都不成立时,先做最小回滚,把站点恢复到已知可用状态,再逐步加回改动。
退出条件也要提前定:如果限流或扩容后核心指标在约定时间内没有改善,就应停止加资源,转向配置排查;如果回滚后问题依旧,就应怀疑外部流量性质或上游依赖,而不是继续改本站规则。这样每一步的结果都会缩小下一步的范围,避免在突增期间反复横跳。