报错是这么冒出来的。首页首字节从两百毫秒涨到四点二秒,百度抓取频次从每天四千降到八百,日志里蜘蛛请求大量以 499 断开,用户侧也开始报加载慢。
中间走过弯路,把「PHP-FPM 进程池太小,蜘蛛并发一进来就排队」当成主因,改完现象没变。
排查方向其实有限,先把可能性排一排。首页挂了个性化推荐接口,未登录也要等三秒超时。另一种情况是聚合查询没走缓存,每次都扫一遍文章表。
另外,对象缓存重启被清空,回源全部打到数据库。
量首页首字节
curl -o /dev/null -s -w '%{time_starttransfer}\n' https://www.lu0.cn/
接着看慢查询日志里的首页语句
mysqldumpslow -s t /var/log/mysql/slow.log | head -10
给首页加整页缓存并跳过个性化接口
末了核对 FPM 子进程与 backlog 配置
grep -E 'pm.max_children|listen.backlog' /etc/php/8.2/fpm/pool.d/www.conf
怎么算真的好了,看的是同一批现象。TTFB 回到三百毫秒以内,抓取频次一周内恢复到三千以上,499 从每天上千条降到两位数。
抓取频次掉档时先看响应时间再看内容,蜘蛛的等待预算很短,四秒的首页等于自己把门关上。这类问题最好一次改到位,反复小改反而容易把原因搅混。
