如何监控Linux PHP-FPM性能指标
导读:1. 使用系统自带命令行工具监控基础性能 通过Linux系统自带的命令行工具,可快速获取PHP-FPM进程的CPU、内存、连接等基础性能指标,适合日常快速排查: systemctl/status:查看PHP-FPM服务运行状态(是否act...
1. 使用系统自带命令行工具监控基础性能
通过Linux系统自带的命令行工具,可快速获取PHP-FPM进程的CPU、内存、连接等基础性能指标,适合日常快速排查:
- systemctl/status:查看PHP-FPM服务运行状态(是否active)、启动时间、重启次数等。示例命令:
sudo systemctl status php-fpm
(若为systemd管理)。 - top/htop:实时显示PHP-FPM进程的资源占用情况(CPU%、内存%)。可通过
top -p $(pgrep php-fpm)
(top)或htop -p $(pgrep php-fpm)
(htop,需安装)过滤出PHP-FPM进程。 - ps:查看PHP-FPM进程的详细信息(如启动时间、运行时长、内存占用)。示例命令:
ps aux | grep php-fpm
。 - netstat/ss:检查PHP-FPM监听的端口或Unix套接字状态(确认服务是否正常监听)。示例命令:
sudo ss -tulnp | grep php-fpm
(推荐,更现代)或netstat -tulnp | grep php-fpm
。 - 日志分析:查看PHP-FPM错误日志(路径通常为
/var/log/php-fpm.log
或/var/log/php/{ version} -fpm.log
),获取错误、警告或慢请求信息。示例命令:sudo tail -f /var/log/php-fpm.log
。
2. 启用PHP-FPM内置状态页面获取实时指标
PHP-FPM内置状态页面可提供更详细的运行指标(如活跃进程数、空闲进程数、处理请求总数、慢请求数等),需先在配置文件中启用:
- 配置步骤:编辑PHP-FPM池配置文件(通常位于
/etc/php/{ version} /fpm/pool.d/www.conf
),设置以下参数:pm.status_path = /status # 状态页面路径 ping.path = /ping # 健康检查路径(可选)
- 访问状态页面:若PHP-FPM通过Nginx代理,需在Nginx配置中添加location规则并授权访问。示例Nginx配置:
访问location /status { fastcgi_pass 127.0.0.1:9000; # PHP-FPM监听地址 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; allow 127.0.0.1; # 仅允许本地访问(生产环境需限制IP) deny all; }
http://server-ip/status
即可查看实时指标(如active processes
、idle processes
、total requests
)。
3. 利用第三方监控工具实现长期可视化与告警
第三方工具可实现PHP-FPM指标的长期收集、可视化及阈值告警,适合生产环境:
- Prometheus + Grafana:
- Prometheus:通过
php-fpm-exporter
(如wodby/php-fpm-exporter
)采集PHP-FPM指标(如php_fpm_active_processes
、php_fpm_idle_processes
、php_fpm_requests_total
),并存储到Prometheus时间序列数据库。 - Grafana:添加Prometheus作为数据源,导入PHP-FPM监控仪表盘(如社区提供的
PHP-FPM Exporter Dashboard
),实现指标的可视化展示(如进程数趋势、请求量分布)。
- Prometheus:通过
- Monit/Nagios:
- Monit:配置Monit监控PHP-FPM进程状态(是否运行)、资源占用(CPU>
80%、内存>
500MB时报警)。示例配置:
check process php-fpm with pidfile /run/php/php-fpm.pid start program = "/usr/sbin/service php-fpm start" stop program = "/usr/sbin/service php-fpm stop" if cpu > 80% for 5 cycles then alert if memory > 500 MB for 5 cycles then alert
- Nagios:通过
check_php-fpm
插件监控PHP-FPM状态页面的指标(如活跃进程数、慢请求数),设置阈值告警。
- Monit:配置Monit监控PHP-FPM进程状态(是否运行)、资源占用(CPU>
80%、内存>
500MB时报警)。示例配置:
- 商业APM工具:如New Relic、Datadog,提供PHP-FPM性能的全栈监控(从代码到基础设施),支持自动发现性能瓶颈(如慢查询、内存泄漏),并集成告警功能。
4. 配置慢日志定位性能瓶颈
通过慢日志记录执行时间超过阈值的PHP请求,帮助定位性能问题(如慢SQL、复杂代码):
- 配置步骤:编辑PHP-FPM池配置文件,设置慢日志路径和超时阈值:
slowlog = /var/log/php-fpm/slow.log # 慢日志文件路径 request_slowlog_timeout = 10s # 执行时间超过10秒的请求记录为慢请求
- 查看慢日志:使用
tail
或less
命令查看慢日志内容,分析慢请求的执行时间、调用栈等信息。示例命令:sudo tail -f /var/log/php-fpm/slow.log
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何监控Linux PHP-FPM性能指标
本文地址: https://pptw.com/jishu/727838.html