发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Ubuntu上调优PHP-FPM的进程数,其实是个老生常谈但又很容易踩坑的话题。不少朋友配置完之后发现服务器压力一大就崩,或者明明内存充足却跑不满性能,问题往往就出在几个关键参数上。下面直接把操作步骤和参数逻辑拆开来讲,这样你不仅知道怎么改,还能明白为什么要这样改。

第一步,打开终端。这个不必多说,SSH进去就行。
第二步,找到PHP-FPM的池配置文件。路径通常是 /etc/php/{version}/fpm/pool.d/www.conf,其中 {version} 是你安装的PHP版本号。比如常用的PHP 7.4,路径就是 /etc/php/7.4/fpm/pool.d/www.conf。用你习惯的文本编辑器打开,nano或者vim都行:
sudo nano /etc/php/{version}/fpm/pool.d/www.conf
记得把 {version} 换成实际的版本号。
第三步,核心配置就在这里了。先找到这么一行:
pm = dynamic
这个 dynamic 表示PHP-FPM采用动态进程管理模式。在这种模式下,你需要调整以下四个参数:
pm.max_children:允许的最大子进程数,也就是同时能处理多少个请求的上限。pm.start_servers:PHP-FPM启动时立刻创建的子进程数量。pm.min_spare_servers:最小空闲进程数,保证随时有备用的进程可以响应请求。pm.max_spare_servers:最大空闲进程数,避免浪费太多内存。第四步,根据你的服务器配置来设具体数值。举个例子,假设是2核4G的VPS,可以这样写:
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
这个配置的含义是:最多允许50个子进程同时运行;启动时先拉起5个;正常情况下,最少保留5个空闲进程,最多保留35个空闲进程。这样既能应对突发流量,又不会一直占着大量内存。
注意,这些数值需要根据实际负载反复调优——如果内存小,pm.max_children 设得过高会导致OOM Killer把进程干掉;如果并发量大,设得太低又会频繁排队。一个常用的估算方式是:每个PHP进程大约占用30~50MB内存,用总内存除以这个值,再留出系统本身和数据库的余量,就能得出一个安全的 max_children 上限。
第五步,保存文件并退出编辑器。
第六步,重启PHP-FPM服务让配置生效:
sudo systemctl restart php{version}-fpm
比如PHP 7.4就是:
sudo systemctl restart php7.4-fpm
到此为止,PHP-FPM的进程数就已经按你的意愿调整好了。最后再强调一句:不要照搬别人的数值,一定要结合自己的服务器配置和业务流量反复测试。最好的工具就是 htop 和 pm.status,观察实际占用的进程数和响应时间,逐步逼近最优值。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8