Laravel 部署:PHP-fpm 配置调优
使用 ps aux|grep php-fpm
查看 php-fpm 进程,可以看到有三个子进程。
root@example:/# ps aux|grep php-fpm
root 574 0.0 0.0 463668 104 ? Ss Jun16 0:49 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
www-data 5320 0.7 2.5 475660 25248 ? S 00:27 6:41 php-fpm: pool www
www-data 5321 0.7 2.6 475784 26312 ? S 00:27 6:37 php-fpm: pool www
www-data 9412 0.7 2.5 474632 26156 ? S 14:04 0:41 php-fpm: pool www
root 11647 0.0 0.1 16148 1040 pts/0 S+ 15:33 0:00 grep --color=auto php-fpm
进程数是由 / etc/php/7.4/fpm/pool.d/www.conf
指定的:
pm = dynamic:子进程的数量是根据以下指令来动态生成的
pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
pm = ondemand:在服务启动的时候根据 pm.start_servers
指令生成进程,而非动态生成。
pm = static:子进程的数量是由 pm.max_children
指令来确定的。
安装好,默认是 pm = dynamic
如果服务器内存小,可以默认就好,大内存服务器则可以设置为 pm = static
,然后 pm.max_children
数量根据服务器的内存来决定,这样就可以最大化服务器负载能力。
如何配置
环境
PHP 7.4
这边示例,调为 10 个: pm.max_children = 10
设置好重启 php-fpm:sudo systemctl restart php7.4-fpm
最后看下是否成功:

更多详细信息可以查看 PHP-FPM 调优:使用 ‘pm static’ 来最大化你的服务器负载能力
Last updated