逐层优化——每一层在达到下一层之前就吸收负载。 目标是从缓存提供大多数请求,让 PHP 和数据库做尽可能少的工作。
1. PHP-FPM 和 OPcache
根据您的 RAM 调整 池大小,并启用 ,使 PHP 编译一次而不是每个请求编译一次:
; php-fpm pool: cap workers so you don't exhaust RAM
; pm.max_children = (available RAM for PHP) / (avg process size, ~50MB)
pm = dynamic
pm.max_children = 40 ; hard ceiling on concurrent PHP workers
pm.start_servers = 10
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 500 ; recycle workers to avoid memory leaks
; OPcache: cache compiled bytecode in memory
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 20000
opcache.validate_timestamps = 0 ; skip file-stat checks in prod (flush on deploy)
如果 max_children 太高,您会交换和崩溃;太低则请求排队(负载下出现 502)。
这种分层意味着主页命中可以从边缘或页面缓存返回,而根本不需要触及 PHP 或数据库。
启用 slow query log 查找问题查询,为自定义查询添加 索引,并审计 自动加载选项(wp_options 中 autoload = yes 的项在 每个 请求上加载——臃肿的自动加载数据会拖累一切)。最后,减少插件膨胀:每个插件都添加查询和 PHP 工作,所以移除未使用的插件。
WordPress 请求默认是 PHP 和数据库密集型的,所以在没有调优的情况下它会在流量下崩溃。分层缓存(OPcache → 对象缓存 → 页面缓存 → CDN)加上适当大小的 PHP-FPM 和精简的数据库,可以让单个服务器处理数个数量级更多的流量——并在峰值期间保持运行。
一个包含详细解答的 IT 面试题库——从初级到高级。
捐赠