在Ubuntu上優化PHP-FPM性能可以通過以下幾個步驟來實現:
sudo apt update
sudo apt install php-fpm
sudo cp /etc/php/{version}/fpm/pool.d/www.conf /etc/php/{version}/fpm/pool.d/myapp.conf
sudo nano /etc/php/{version}/fpm/pool.d/myapp.conf
listen:指定監聽的地址和端口(例如,/run/php/php7.4-fpm.sock或127.0.0.1:9000)。listen.owner和listen.group:監聽套接字的擁有者和組。user和group:運行PHP-FPM進程的用戶和組。pm:進程管理器類型(dynamic、static或ondemand)。pm.max_children:最大子進程數。pm.start_servers:啟動時的服務器進程數。pm.min_spare_servers:最小空閑服務器進程數。pm.max_spare_servers:最大空閑服務器進程數。[myapp]
listen = /run/php/php7.4-fpm.myapp.sock
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 1000
sudo systemctl restart php{version}-fpm
關鍵參數:
pm.dynamic:使用動態模式,根據流量調整子進程數量。pm.max_children:根據服務器內存和CPU資源合理設置。pm.start_servers:根據預期負載設置初始子進程數。pm.min_spare_servers和pm.max_spare_servers:根據服務器流量模式調整。pm.max_requests:防止內存泄漏,設置合理的請求數。優化建議:
dynamic模式。pm.max_children。pm.start_servers。pm.min_spare_servers和pm.max_spare_servers。pm.max_requests以防止內存泄漏。php.ini文件:sudo nano /etc/php/7.4/cli/php.ini
zend_extension = /usr/lib/php/20190902/opcache.so
sudo systemctl restart php7.4-fpm
sudo systemctl status php7.4-fpm
top
htop
ps aux | grep php-fpm
netstat -tuln | grep php7.4-fpm
sudo apt-get install php-fpm-stat
php-fpm-stat
通過以上步驟,你可以在Ubuntu上優化PHP-FPM的性能,確保你的PHP應用程序能夠高效運行。