排查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的性能瓶颈。