當Ubuntu下的php-fpm內存占用過高時,可以采取以下步驟進行排查和解決:
top
命令查看當前進程占用內存排序。ps -fe grep "php-fpm" | 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
:控制空閑進程數量。php.ini
文件中啟用opcache:zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.memory_consumption
和其他相關設置。修改配置文件后,使用以下命令重啟php-fpm服務以應用更改:
sudo systemctl restart php{version}-fpm
將 {version}
替換為實際的PHP版本號,例如 php7.4-fpm
。
/var/log/php-fpm/www-error.log
,以發現潛在的性能問題或錯誤。通過上述步驟,可以有效降低php-fpm的內存使用,提高服務器的性能。在調整配置時,建議根據實際服務器的硬件資源和應用需求進行合理設置。