centos中php性能如何监控
导读:CentOS 下 PHP 性能监控实操指南 一 监控体系与分层 系统层:CPU、内存、I/O、网络与连接数,用于判断是否为资源瓶颈。 服务层:PHP-FPM(进程池、队列、慢请求)、Nginx/Apache(吞吐、状态码、连接)。 应用层...
CentOS 下 PHP 性能监控实操指南
一 监控体系与分层
- 系统层:CPU、内存、I/O、网络与连接数,用于判断是否为资源瓶颈。
- 服务层:PHP-FPM(进程池、队列、慢请求)、Nginx/Apache(吞吐、状态码、连接)。
- 应用层:错误与慢日志、数据库慢查询、关键业务指标(如接口耗时 P95/P99)。
- APM 与可视化:如 New Relic/Datadog、Prometheus + Grafana,用于长期观测与告警。
二 快速上手命令与日志
- 进程与资源
- 实时查看:top/htop(按 CPU%/MEM% 排序,关注 php-fpm 进程)。
- 进程快照:ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | grep php-fpm。
- 连接与端口:ss -lntp | grep :9000(PHP-FPM 默认 9000 端口,若使用 socket 则查对应 socket 文件)。
- PHP-FPM 状态与日志
- 服务状态:systemctl status php-fpm;日志路径常见为 /var/log/php-fpm/(如 error.log)。
- 若需 PHP-FPM 状态页(便于采集队列与进程指标),在 /etc/php-fpm.d/www.conf 中启用:
- 打开:pm.status_path = /status
- 访问控制:在对应 Nginx/Apache 配置中仅允许内网访问 /status
- 访问示例:curl http://127.0.0.1/status?json(JSON 输出便于采集)。
- Web 与数据库
- Web 访问日志:如 /var/log/nginx/access.log,可用 goaccess 生成可视化报告。
- MySQL 慢查询:开启 slow_query_log,定位执行时间长的 SQL。
三 关键指标与采集方法
| 层级 | 指标 | 采集方式 | 说明 |
|---|---|---|---|
| 系统 | CPU、内存、I/O、网络 | top/htop、vmstat、iostat、sar | 判断是否资源瓶颈 |
| PHP-FPM | 进程数、空闲/忙碌、排队、慢请求 | 状态页 /status?json、日志 /var/log/php-fpm/ | 观察 queue、slow requests |
| Nginx | 请求吞吐、状态码分布、连接 | access.log、stub_status | 结合 P95/P99 响应时间 |
| 应用 | 错误与慢日志 | PHP-FPM 日志、应用日志 | 快速定位异常与慢点 |
| 数据库 | 慢查询 | MySQL slow_query_log | 优化 SQL 与索引 |
| APM | 调用图、事务耗时、外部依赖 | New Relic/Datadog/Prometheus Exporter | 长期观测与告警 |
- 建议采集频率:系统与应用指标 15s,日志与 APM 60s 或按事件采样。
四 可视化与告警搭建
- Prometheus + Grafana
- 部署 Prometheus 与 Grafana,在 Grafana 中添加 Prometheus 数据源。
- 采集 PHP-FPM 状态页(建议启用 /status?json)与 Nginx stub_status,配置 scrape_interval: 15s。
- 导入社区仪表盘(如 PHP-FPM、Nginx、Node/System),设置阈值告警(如 queue > 10、5xx > 1%)。
- 商业 APM
- New Relic:安装 PHP Agent(如 pecl install newrelic),在 php.ini 配置 newrelic.appname 与 newrelic.license_key,即可获取函数级调用图与事务追踪。
- Datadog:安装 Datadog Agent 并启用 PHP 集成,收集 APM、日志与基础设施 指标。
五 性能分析与定位工具
- 开发/测试环境
- Xdebug:生成 trace/callgraph,配合 KCacheGrind/Webgrind 分析函数调用与耗时,适合深度定位瓶颈(开销较大,不建议长期开启于生产)。
- XHProf:轻量级剖析,记录 函数调用次数、CPU、内存,便于对比优化前后差异。
- 生产友好
- Blackfire.io:低开销采样分析,提供 调用图 与 瓶颈定位,适合在接近生产的灰度环境持续使用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos中php性能如何监控
本文地址: https://pptw.com/jishu/767587.html
