逐层优化——每一层在达到下一层之前就吸收负载。 目标是从缓存提供大多数请求,让 PHP 和数据库做尽可能少的工作。
1. PHP-FPM 和 OPcache
根据您的 RAM 调整 PHP-FPM 池大小,并启用 OPcache,使 PHP 编译一次而不是每个请求编译一次:
ini
= dynamic
=
=
=
=
=
=
=
=
=
逐层优化——每一层在达到下一层之前就吸收负载。 目标是从缓存提供大多数请求,让 PHP 和数据库做尽可能少的工作。
根据您的 RAM 调整 PHP-FPM 池大小,并启用 OPcache,使 PHP 编译一次而不是每个请求编译一次:
= dynamic
=
=
=
=
=
=
=
=
=
如果 max_children 太高,您会交换和崩溃;太低则请求排队(负载下出现 502)。
这种分层意味着主页命中可以从边缘或页面缓存返回,而根本不需要触及 PHP 或数据库。
启用 slow query log 查找问题查询,为自定义查询添加 索引,并审计 自动加载选项(wp_options 中 autoload = yes 的项在 每个 请求上加载——臃肿的自动加载数据会拖累一切)。最后,减少插件膨胀:每个插件都添加查询和 PHP 工作,所以移除未使用的插件。
WordPress 请求默认是 PHP 和数据库密集型的,所以在没有调优的情况下它会在流量下崩溃。分层缓存(OPcache → 对象缓存 → 页面缓存 → CDN)加上适当大小的 PHP-FPM 和精简的数据库,可以让单个服务器处理数个数量级更多的流量——并在峰值期间保持运行。