先看一个能立刻执行的判断:把同一时间窗的服务器资源指标与请求结果分布放在一起。如果CPU、内存、PHP进程、数据库连接接近上限,而错误以超时和进程耗尽为主,优先按资源压力处理;如果资源远未触顶,却集中出现404、403、502或重定向循环,优先按迁移后的配置错误处理。两者会同时出现,所以不要只凭一种现象下结论。
访问量突增时最容易犯的错,是拿“现在很慢”去对比“迁移前很快”。你需要把范围缩到同一时段、同一类页面、同一类请求。假设迁移后某天上午10点到10点30分出现大量访问,就先取这30分钟,再看三个层面:主机资源曲线、Web服务器与PHP错误日志、应用层慢查询或缓存命中情况。若主机面板只保留5分钟粒度,就按5分钟对齐,不要用小时均值掩盖尖峰。
这个动作的结果会直接决定下一步:如果资源曲线与错误时间点重合,说明先扩容、限流或调整进程池更有效;如果错误时间点早于资源上涨,或资源上涨后错误类型没有变化,说明配置问题更可能是主因。
资源压力通常有可量化的顶到上限的迹象,而不是单次页面变慢。可观察的信号包括:CPU持续接近套餐上限、内存不足触发交换、PHP-FPM可用进程长期为0、数据库连接数达到上限、磁盘IO等待明显升高。此时错误往往表现为504、连接被重置、请求排队,且不同页面都会受影响,与URL结构关系不大。
但要注意适用条件:共享主机或容器套餐的资源指标可能被平台隐藏或延迟展示,不能因为看不到曲线就断定不是资源问题。可以改用应用层证据交叉验证,例如同一分钟内PHP执行时间中位数和最大值同时抬升,且缓存命中率下降。若只有个别页面慢,而首页和静态资源正常,资源压力就不是唯一解释。
迁移后配置错误往往有“换了环境才出现”的特征。常见分层包括:Web服务器重写规则、WordPress站点地址与主页地址、数据库表前缀或连接信息、对象缓存与持久化缓存、反向代理传递的协议头。它们造成的现象通常更集中:某些固定路径404,登录后跳回登录页,后台正常而前台异常,或者HTTPS页面里混入HTTP资源。
一个假设例子:迁移后访问量上升,首页和文章页正常,但分类页大量404。此时主机CPU只到三成,PHP进程充足,错误日志里全是重写规则未匹配。这个证据组合更支持配置错误,而不是资源压力。反过来,如果所有页面都超时,且PHP进程耗尽,即使同时存在少量404,也应先把资源压力当作主线,再处理配置遗留。
在访问高峰之外,选一个低峰窗口做对照。动作如下:
结果如何影响下一步:如果关闭缓存后错误从502变成超时,说明缓存层掩盖了资源瓶颈,应先恢复缓存并扩容;如果关闭缓存后固定路径404依旧存在,说明重写或站点地址配置仍有问题,应先修复配置再谈容量。
请求量或抓取量归零、日志突然安静,并不能单独证明处理正确。它也可能来自抓取预算变化、CDN缓存命中、监控采样丢失或访问本身转移。判断资源压力与配置错误时,至少保留两类独立证据:一类是资源指标,一类是请求结果分布。只有两类证据指向同一层,才适合把该层作为优先处理对象。若证据冲突,先做最小变更并记录变更前后的同一时间窗结果,再决定是否扩大处理范围。