优化 PHP-FPM(FastCGI Process Manager)在 Linux 上的表现可以通过多种方式实现,以下是一些常见的优化策略:
调整进程管理器配置:
pm:设置进程管理器类型,可选 static、dynamic 或 ondemand。
static:固定数量的子进程。dynamic:根据负载动态调整子进程数量。ondemand:按需启动子进程,适用于低流量网站。pm.max_children:设置最大子进程数。pm.start_servers:设置启动时的服务器进程数(仅对 dynamic 和 ondemand 有效)。pm.min_spare_servers:设置最小空闲服务器进程数(仅对 dynamic 和 ondemand 有效)。pm.max_spare_servers:设置最大空闲服务器进程数(仅对 dynamic 和 ondemand 有效)。pm.max_requests:每个子进程在重启前处理的请求数,有助于避免内存泄漏。优化 PHP 配置:
memory_limit:设置脚本允许使用的最大内存。upload_max_filesize 和 post_max_size:设置上传文件的最大大小。max_execution_time:设置脚本的最大执行时间。opcache.enable:启用 OPcache 加速 PHP 脚本执行。opcache.memory_consumption:设置 OPcache 分配的内存大小。opcache.interned_strings_buffer:设置内联字符串缓冲区大小。opcache.max_accelerated_files:设置可以缓存的文件数量。调整系统参数:
ulimit -n。vm.swappiness、vm.overcommit_memory 等。使用 PHP-FPM 池:
监控和分析:
top、htop、php-fpm status 等监控 PHP-FPM 的性能。升级硬件:
使用 PHP 7+:
代码优化:
使用持久连接:
启用 HTTP/2:
在进行任何优化之前,建议先在测试环境中进行更改,并监控其对性能的影响。此外,确保在生产环境中应用更改之前备份所有配置文件。