当Ubuntu下的php-fpm内存使用过高时,可以采取以下步骤进行排查和解决:
top
命令查看当前进程占用内存排序。ps -fe grep "php-fpm" grep "pool" wc -l
命令查看当前php-fpm总进程数。ps -ylC php-fpm --sort:rss
命令查看当前php-fpm进程的内存占用情况及启动时间。修改进程池大小:
pm.max_children
:控制最大子进程数,根据服务器内存和CPU核心数调整。pm.start_servers
:控制起始服务器进程数量。pm.min_spare_servers
和 pm.max_spare_servers
:控制空闲进程数量。启用和配置OPcache:
调整内存限制:
php.ini
文件中调整 memory_limit
参数,根据实际需求设置。使用更高效的进程管理方式:
ondemand
模式而不是默认的 dynamic
模式,以降低系统的负载和内存消耗。sudo systemctl restart php7.x-fpm # 替换为实际的PHP版本号
/var/log/php-fpm/www-error.log
,以发现潜在的性能问题或错误。通过上述步骤,可以有效降低php-fpm的内存使用,提高服务器的性能。在调整配置时,建议根据实际服务器的硬件资源和应用需求进行合理设置。