调整 PHP-FPM(FastCGI Process Manager)的进程管理器参数可以优化 PHP 应用程序的性能和资源利用率。以下是一些常见的参数及其调整方法:
1. pm 参数
pm 参数决定了 PHP-FPM 使用的进程管理方式。常见的值有 dynamic、static、ondemand 和 lazy。
- dynamic: 根据负载动态调整进程数。
- static: 固定数量的子进程。
- ondemand: 按需启动子进程,没有请求时不会启动。
- lazy: 类似于
ondemand,但会保持一些空闲进程。
pm = dynamic
2. pm.max_children 参数
pm.max_children 参数定义了可以同时运行的最大子进程数。
pm.max_children = 50
3. pm.start_servers 参数
pm.start_servers 参数定义了启动时创建的子进程数。
pm.start_servers = 5
4. pm.min_spare_servers 参数
pm.min_spare_servers 参数定义了最小空闲子进程数。
pm.min_spare_servers = 5
5. pm.max_spare_servers 参数
pm.max_spare_servers 参数定义了最大空闲子进程数。
pm.max_spare_servers = 35
6. pm.max_requests 参数
pm.max_requests 参数定义了一个子进程在被重启之前可以处理的请求数量,有助于防止内存泄漏。
pm.max_requests = 500
7. request_terminate_timeout 参数
request_terminate_timeout 参数定义了脚本执行的最大时间,超过这个时间将被终止。
request_terminate_timeout = 0
8. pm.status_path 参数
pm.status_path 参数定义了一个用于监控 PHP-FPM 状态的路径。
pm.status_path = /status
调整步骤
- 备份配置文件:在修改任何配置文件之前,务必备份原始文件。
- 编辑配置文件:找到并编辑
php-fpm.conf或www.conf文件(具体文件名取决于你的系统)。 - 调整参数:根据你的应用需求和服务器资源,调整上述参数。
- 重启 PHP-FPM:保存配置文件后,重启 PHP-FPM 服务以使更改生效。
sudo systemctl restart php-fpm
监控和测试
调整参数后,监控服务器的性能和资源使用情况,确保调整后的配置能够满足需求并且不会导致资源浪费或性能下降。
通过这些步骤,你可以有效地调整 PHP-FPM 的进程管理器参数,优化你的 PHP 应用程序的性能。