调整 PHP-FPM(FastCGI Process Manager)进程管理可以通过修改其配置文件来实现。以下是一些常见的调整方法:
www.conf 文件www.conf 是 PHP-FPM 的主要配置文件,通常位于 /etc/php-fpm.d/www.conf 或 /etc/php/7.x/fpm/pool.d/www.conf(具体路径取决于你的系统和 PHP 版本)。
pm: 进程管理方式,可选值有 dynamic、static、ondemand。
dynamic: 根据负载动态调整进程数。static: 固定数量的进程。ondemand: 按需启动进程。pm.max_children: 最大子进程数。pm.start_servers: 启动时的服务器进程数。pm.min_spare_servers: 最小空闲服务器进程数。pm.max_spare_servers: 最大空闲服务器进程数。pm.max_requests: 每个子进程在被重启之前可以处理的请求数。pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
php-fpm.conf 文件php-fpm.conf 是 PHP-FPM 的主配置文件,通常位于 /etc/php/7.x/fpm/php-fpm.conf。
request_terminate_timeout: 请求超时时间,单位为秒。slowlog: 慢日志文件路径。request_terminate_timeout = 0
slowlog = /var/log/php-fpm/slow.log
pool 配置如果你使用的是多个 PHP-FPM pool(例如,不同的虚拟主机或应用),可以在 pool.d 目录下创建或修改相应的配置文件。
[www]
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
修改配置文件后,需要重启 PHP-FPM 服务以使更改生效。
sudo systemctl restart php7.4-fpm
或者,如果你使用的是 init.d 脚本:
sudo /etc/init.d/php7.4-fpm restart
在调整配置后,监控 PHP-FPM 的性能和资源使用情况,根据实际情况进一步微调参数。可以使用工具如 top、htop、php-fpm status 等来监控。
通过以上步骤,你可以有效地调整 PHP-FPM 的进程管理,以优化性能和资源利用率。