搭建基于 Nginx + PHP-FPM + MySQL 的 WordPress 环境时,并没有一个绝对固定的“推荐核心数”,因为最佳配置高度取决于你的访问量(QPS/UV)、内容类型(纯博客 vs 电商)、插件复杂度以及数据库查询优化程度。
不过,根据常见的生产场景和性能基准测试,可以将需求划分为以下几个层级供你参考:
1. 轻量级/个人博客场景
- 适用情况:日访客量(PV)在 5,000 – 20,000 以内,主要发布文章,图片较少,插件数量少且轻量。
- 推荐 CPU 核心数:1 ~ 2 核
- Nginx:作为反向X_X,消耗极低,单核即可轻松处理数千并发连接。
- PHP-FPM:WordPress 是单线程执行的。对于低流量,通常设置
pm.max_children为 4-8 个进程即可。2 核 CPU 足以支撑这些进程同时运行而不出现排队。 - MySQL:小型数据库对 CPU 压力不大,除非有复杂的全文搜索。
- 内存建议:2GB – 4GB(PHP-FPM 和 MySQL 比较吃内存,核心数不是瓶颈)。
2. 中小型商业网站/企业官网
- 适用情况:日 PV 在 2 万 – 10 万之间,包含较多图片/视频,使用了一些较重的插件(如 SEO、缓存、表单),偶尔有促销活动导致流量波动。
- 推荐 CPU 核心数:4 核
- 并发处理:随着并发请求增加,PHP-FPM 需要更多的子进程来响应。4 核可以分配给 PHP 更多资源,避免请求阻塞。
- 数据库缓冲:MySQL 在读取大量数据或进行复杂查询时会更依赖多核并行处理(如 InnoDB 的后台刷新线程)。
- 冗余度:预留核心用于系统调度、日志写入和其他守护进程,防止突发流量导致服务器假死。
- 内存建议:4GB – 8GB。
3. 高流量/电商/媒体站
- 适用情况:日 PV 超过 10 万,或者涉及 WooCommerce 等电商功能,包含大量动态计算、用户登录、支付接口调用。
- 推荐 CPU 核心数:8 核及以上
- 架构调整:此时单纯依靠单机已不够稳定。通常建议将 Nginx、PHP-FPM 和 MySQL 分离部署到不同的服务器上。
- Web 层(Nginx+PHP):可能需要 4-8 核。
- DB 层(MySQL):需要更强的单核主频和多核处理能力(通常 8 核起步)。
- 如果必须单机:8 核是底线,但必须配合 Redis 做对象缓存(Object Cache)和页面缓存(Page Cache),否则 MySQL 会迅速成为 CPU 瓶颈。
- 架构调整:此时单纯依靠单机已不够稳定。通常建议将 Nginx、PHP-FPM 和 MySQL 分离部署到不同的服务器上。
关键影响因素与优化建议
在决定核心数之前,请务必考虑以下因素,它们往往比单纯增加 CPU 更有效:
-
缓存机制(最重要)
- 如果不加缓存,每次访问都要经过 PHP 解析并查询 MySQL,CPU 利用率会瞬间飙升。
- 方案:务必安装 Redis 或 Memcached 做对象缓存,并配合 OPcache(开启 PHP 提速)。开启缓存后,90% 的请求可以直接由 Nginx 返回静态文件或从内存获取,CPU 需求可降低 70% 以上。
-
PHP-FPM 配置
- 不要盲目调大
pm.max_children。如果该值过大而内存不足,会导致频繁的 Swap 交换,反而让 CPU 忙于处理内存分页,系统变慢。 - 公式参考:
max_children = (可用内存 - 系统保留) / (单个 PHP 进程平均内存)。
- 不要盲目调大
-
数据库优化
- WordPress 默认查询效率较低。确保开启了 Slow Query Log,并为常用字段添加索引。
- 如果是读多写少的场景,可以考虑引入 MySQL 读写分离或使用云数据库(RDS)。
-
云服务器的特性
- 如果是阿里云、AWS 或腾讯云等云厂商,vCPU 的性能通常不如物理机。如果你购买的是共享型实例(Shared),即使有 4 核,实际算力也可能不稳定。对于生产环境,建议选择独享型实例。
总结建议
| 网站规模 | 预估日 PV | 推荐 CPU 核心 | 关键动作 |
|---|---|---|---|
| 个人/测试 | < 5,000 | 1 – 2 核 | 开启 OPcache,安装缓存插件 |
| 企业/博客 | 5k – 100k | 4 核 | 启用 Redis 缓存,优化数据库索引 |
| 电商/高流 | > 100k | 8 核+ (建议拆分) | 动静分离,Redis 集群,CDN 提速 |
最终结论:
对于大多数初次搭建且预期未来半年内有正常增长需求的 WordPress 站点,4 核 CPU + 4GB~8GB 内存 是一个性价比最高且容错率较好的起步配置。如果预算有限,可以先上 2 核,但必须严格配置好缓存(Redis + Page Cache),否则很容易在流量稍大时崩溃。
云知道CLOUD