Linux下ThinkPHP性能监控实战
一 监控目标与分层
二 快速落地步骤
三 关键指标与采集方法
| 维度 | 关键指标 | 采集方式 | 典型阈值或动作 |
|---|---|---|---|
| 应用 | P50/P95/P99响应时间、QPS、错误率 | Nginx日志分析、应用埋点 | P95持续>1s或错误率>**1%**告警 |
| 应用 | 慢请求数、慢SQL数 | 应用埋点、DB慢查询日志 | 慢请求>**5%**触发排查 |
| PHP-FPM | 进程利用率、队列长度、慢请求 | pm.status_path、php-fpm日志 | 队列>10或进程满负荷告警 |
| 系统 | CPU、内存、磁盘IO、网络 | node_exporter、系统监控 | CPU>**80%**持续5分钟告警 |
| 数据库 | 慢查询、连接数、锁等待 | MySQL慢查询日志、performance_schema | 慢查询突增立即排查 |
| 缓存 | 命中率、慢操作 | Redis INFO/慢日志 | 命中率<**90%**告警 |
四 工具与代码示例
top/htop、iotop、iftop、vmstat 1、netstat -s、ss -s、lsof -p <PID>。pm.status_path = /status,用curl http://127.0.0.1/status?json采集;结合Nginx仅内网可访问。composer require datadog/php-datadogstatsd,在服务提供者中绑定DogStatsd,在关键方法前后打点上报timing/histogram/counter,在控制台查看端点耗时分布、错误率与标签维度。五 压测与瓶颈定位