在 CentOS 系统上调整 PHP-FPM 进程数,其实并不复杂,核心就是和配置文件打交道。下面把整个流程拆开来讲,每一步都有需要留意的细节,尤其是资源规划这块,别让服务器吃太饱。
打开终端,这一步没什么好说的,SSH 连上去就成。
找到 PHP-FPM 的配置文件。通常它藏在
/etc/php-fpm.d/www.conf,有时也会直接在/etc/php-fpm.conf里。用你顺手的编辑器打开,比如vi或nano:sudo vi /etc/php-fpm.d/www.conf或者
sudo vi /etc/php-fpm.conf进入文件后,找到这两个关键参数:
pm = dynamic pm.max_children = 5这里的
pm是进程管理方式,dynamic表示动态模式,PHP-FPM 会根据负载自动调整进程数。而pm.max_children就是允许的最大子进程数,也就是能同时处理请求的最大数量。根据服务器的内存和 CPU 资源来调整
pm.max_children。比如你想把上限拉到 20,直接改成:pm.max_children = 20别只看这一个参数——
pm.start_servers(启动时的进程数)、pm.min_spare_servers(最小空闲进程数)和pm.max_spare_servers(最大空闲进程数)同样需要配合调整。经验是,先测算每个 PHP-FPM 进程平均占多少内存(比如 30~50MB),再用总内存除以这个值,就能得到一个安全的max_children上限。比如服务器有 4GB 内存,留出 1GB 给系统和其他服务,剩下的 3GB 除以 40MB,大约 75 个进程,但实际建议再保守些,留出余量。保存并关闭配置文件。如果用
vi,按Esc然后输入:wq回车即可。重启 PHP-FPM 服务让新配置生效:
sudo systemctl restart php-fpm或者
sudo service php-fpm restart
这样一来,PHP-FPM 的进程数就按你的设定跑起来了。不过,调整完最好观察一段时间——用 top 或 htop 盯一下内存和 CPU 占用,如果发现频繁达到 max_children 上限,说明数值还需要再往上提;如果空闲进程长时间占着大量内存,那就适当调低 pm.min_spare_servers。动态模式的好处就是灵活,但也要根据实际负载反复微调,才能找到最平衡的那个点。