在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应用程序能够高效运行。