排查Ubuntu上php-fpm的性能瓶頸可以通過以下幾個步驟進行:
systemctl
命令查看php-fpm服務的狀態,確保服務正在運行。sudo systemctl status php7.0-fpm
如果服務未啟動,可以使用以下命令啟動它:
sudo systemctl start php7.0-fpm
若想讓它開機自動啟動,可以執行:
sudo systemctl enable php7.0-fpm
pgrep
命令查找php-fpm的進程號(PID)。pgrep php7.0-fpm
netstat
命令查看:netstat -plnt | grep php7.0-fpm
或者針對Unix套接字:
ls -l /var/run/php/php7.0-fpm.sock
http://localhost/path/to/status_page
這里的 /path/to/status_page
對應配置文件中 pm.status_path
設置的路徑。
/var/log/php7.0-fpm.log
。less +F /var/log/php7.0-fpm.log
top
或 htop
命令監控CPU和內存使用情況,查看是否有進程占用過高。top
htop
error_log /var/log/php-fpm.log
slowlog /var/log/php-fpm.slow
慢日志超時時間 request_slowlog_timeout
設置為30秒。
代碼審查和優化: 檢查PHP代碼,優化慢速代碼段,減少不必要的數據庫查詢,使用緩存技術(如Redis或Memcached)來提高性能。
使用性能監控工具: 可以使用一些性能監控工具,如Xdebug、Webgrind或KCacheGrind,來分析PHP代碼的性能瓶頸。
調整php-fpm配置:
根據實際情況調整php-fpm的配置文件(通常位于 /etc/php/{version}/fpm/pool.d/www.conf
),如 pm.max_children
、pm.start_servers
、pm.min_spare_servers
、pm.max_spare_servers
和 pm.max_requests
等參數。
通過以上步驟,可以有效地排查和解決Ubuntu上php-fpm的性能瓶頸。