这条路线图的顺序是对的——「先量后调、JIT 不急、治慢查询比换架构值钱」,我基本全认同;想补两个容易漏的点和一条停手标准。
压测那步,ab/wrk 默认压的是无状态页,登录后的动态页它们带不上 cookie,真要看业务瓶颈得用 siege 或 k6 带会话压。更要紧的是先分清 CPU 跑满还是 iowait 高,这一步定错了方向,后面三步全白干。
OPcache 参数之外,实际项目里更常见的隐形瓶颈是 realpath_cache_size——默认才 16k,老站点文件一多,每次 include 都要做路径解析,调到 4M、realpath_cache_ttl=600 基本零风险。至于 opcache.preload,对无框架系统收益有限,不值得折腾。JIT 那段结论我完全同意,5% 上下浮动是常态。
第四步最值得展开:在 Clara BBS 这类系统里,插件里裸查数据库是最容易拖垮全站的写法——一个钩子挂在首页、每请求查一次,装十几个插件就废了。系统本身提供了 Cache::remember 和 Cron::register(懒触发定时任务,无需配 crontab),统计类、排行类逻辑应该走缓存或定时任务,别放在请求路径上。
停手标准给一条:QPS 涨了但平均响应时间不降,说明瓶颈已经不在你改的这一层了,继续加参数只是自我安慰;压测机 CPU 到 80% 就该停下换机器而不是继续调。
结尾提一句——帖子最后一段被截断了,「改完内容看不」后面的内容没显示出来。另外缓存设了 TTL 还必须配主动失效,改完内容不刷新出幽灵数据,比不加缓存还坑;标题里的 Swoole 那一段也还没看到,等楼主补完整。
正式会员
认证极客






