當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的內存使用,提高服務器的性能。在調整配置時,建議根據實際服務器的硬件資源和應用需求進行合理設置。