如何配置Linux下PHP-FPM的进程数
在Linux下配置PHP-FPM进程数需编辑pool.d/www.conf,设置pm(常用dynamic)及pm.max_children。max_children上限由总内存除以单进程平均占用决定,每GB内存约20~30个子进程。修改后重启php-fpm并验证状态。
在Linux环境下调优PHP-FPM的进程数,是不少运维同学日常都会遇到的事情。配置本身并不复杂,但参数选对了,服务器性能能上一个台阶;选错了,内存吃紧或请求响应变慢也是常有的事。下面咱们就把整个流程梳理一遍,关键点都标注清楚,照着操作基本不会出问题。

1. 找到PHP-FPM的配置文件
配置文件通常藏在这两个位置之一:
/etc/php/版本号/fpm/php-fpm.conf/etc/php/版本号/fpm/pool.d/www.conf
其中的“版本号”就是你安装的具体PHP版本,比如7.4、8.1之类的。实际工作中,真正管理进程数的参数主要在pool.d/www.conf里,所以先找它准没错。
2. 编辑配置文件
用你顺手的编辑器打开它,比如用nano的话就是:
sudo nano /etc/php/版本号/fpm/pool.d/www.conf
如果你习惯vim,那就把nano换成vim,操作一样。
3. 修改进程数相关参数
在配置文件中找到下面这几个关键参数,它们直接影响PHP-FPM的并发处理能力:
pm:进程管理方式,可选dynamic、static、ondemand。大部分场景下dynamic最灵活,能根据负载自动调整。pm.max_children:最大子进程数,也就是同时能处理多少个PHP请求的上限。pm.start_servers:启动时创建的子进程数量。pm.min_spare_servers:最低空闲进程数,保证随时有进程等着接请求。pm.max_spare_servers:最高空闲进程数,防止空闲进程太多浪费内存。
举个实际配置的例子,比如你想用动态管理,最大子进程设到50,起步给5个,空闲最低5个,最高35个,那就写成:
pm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35
需要留意的是,这些数值不是随便填的。pm.max_children的上限取决于你服务器的总内存除以单个PHP进程平均内存占用,算错了容易OOM。经验值是每GB内存对应大概20~30个子进程,当然具体还得看你的业务逻辑。
4. 保存并退出编辑器
用nano的话,按Ctrl + O保存,再按Ctrl + X退出;用vim就:wq。保存后配置文件就生效了?还不行,得重启服务才行。
5. 重启PHP-FPM服务
现在让新配置跑起来,命令很直接:
sudo systemctl restart php-fpm
如果系统版本比较老,用的是SysVinit,那就换成:
sudo service php-fpm restart
6. 验证配置
重启后别急着走,先检查一下服务是否正常启动:
sudo systemctl status php-fpm
或者翻翻日志看看有没有报错:
sudo tail -f /var/log/php-fpm/error.log
如果一切正常,你就可以用ps aux | grep php-fpm或者pm.status页面来观察实际进程数是否符合预期。配置完成后,建议先在低流量时段测试,观察内存和CPU的变化,再逐步调整到最优值。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















