以下是PHP-FPM在Ubuntu上的内存优化技巧:
调整进程池参数
/etc/php/{version}/fpm/pool.d/www.conf
,设置 pm.max_children
为服务器内存可承受的最大进程数(建议不超过可用内存的70%)。pm.start_servers
设为CPU核心数的4倍,pm.min_spare_servers
和 pm.max_spare_servers
分别设为CPU核心数的2-4倍,平衡空闲进程占用。pm.max_requests
设为500-1000,避免进程长期运行导致内存泄漏。优化PHP配置
php.ini
中设置合理的 memory_limit
(如128M-256M),避免单个进程占用过多内存。启用OPcache
php.ini
中启用OPcache并配置缓存大小(如 opcache.memory_consumption=64
),缓存编译后的代码以减少内存占用。使用高效进程管理方式
pm = ondemand
模式,按需创建进程,降低内存消耗。pm.process_idle_timeout
控制空闲进程存活时间,避免资源占用。监控与调优
top
、htop
或 glances
监控内存使用,及时发现异常。php-fpm-status
模块),定位内存消耗高的请求。硬件与系统优化
vm.swappiness
)适合PHP-FPM运行场景。注意:修改配置后需重启PHP-FPM服务生效,建议在测试环境验证后再部署到生产环境。