Linux服务器上ThinkPHP性能监控工具与落地方案
一、工具选型与适用场景
| 工具 |
类型 |
关键能力 |
典型场景 |
成本 |
| ThinkPHP 内置日志 + 自定义中间件 |
应用内 |
记录请求耗时、内存峰值、错误堆栈;快速落地 |
开发/预发/生产的基础可观测性 |
免费 |
| Prometheus + Grafana |
开源监控 |
自定义指标、拉取式采集、可视化与告警 |
需要长期趋势、容量规划与自托管监控 |
免费 |
| Datadog APM |
商业SaaS |
全栈监控、自动发现、分布式追踪、丰富告警 |
企业级可观测、统一平台 |
付费 |
| New Relic APM |
商业SaaS |
代码级性能分析、事务追踪、慢SQL分析 |
深度性能瓶颈定位 |
付费 |
| Linux 系统工具(top/htop/vmstat/iostat/netstat) |
系统层 |
CPU/内存/IO/网络瓶颈快速定位 |
与应用指标联动排查 |
免费 |
| 数据库监控(MySQL慢查询、PMM) |
数据层 |
慢查询日志、执行计划、连接与缓存命中 |
SQL与索引优化 |
开源/商业 |
| Supervisor |
进程守护 |
进程保活、崩溃自动重启、日志归集 |
CLI/队列/常驻进程稳定性 |
免费 |
| XHProf / DebugBar |
开发期剖析 |
函数级耗时、调用图、SQL与模板统计 |
开发/测试环境瓶颈定位 |
免费 |
| 以上工具覆盖了从应用、系统到数据库的全链路监控与剖析,可按环境与预算灵活组合。 |
|
|
|
|
二、快速落地步骤
三、系统层与数据库联动排查
- Linux 常用命令
- top/htop:实时查看 CPU/内存 占用,定位高负载进程(如 php-fpm)。
- vmstat 1:关注 r(运行队列)、free(空闲内存)、si/so(换入换出)。
- iostat -x 1:磁盘 %util、await,识别 IO 瓶颈。
- netstat -tulnp / ss:连接状态与端口占用,排查高并发网络问题。
- 数据库监控
- MySQL 慢查询日志:开启 slow_query_log,分析超时 SQL;
- EXPLAIN 检查是否全表扫描/缺失索引;
- 使用 Percona PMM 等工具监控查询频率、连接数、缓存命中率。
四、进程守护与开发期剖析
- 进程守护 Supervisor(适用于 CLI/队列/常驻进程)
- 安装:sudo apt-get install supervisor
- 配置示例(/etc/supervisor/conf.dphp.conf):
- [program:thinkphp]
- command=php /path/to/yourphp/project think queue:work --queue=default --tries=3
- directory=/path/to/yourphp/project
- autostart=true
- autorestart=true
- user=www-data
- redirect_stderr=true
- stdout_logfile=/var/logphp.out.log
- stderr_logfile=/var/logphp.err.log
- 生效:sudo supervisorctl reread && sudo supervisorctl update && sudo supervisorctl start thinkphp:*
- 开发期剖析工具
- XHProf / Tideways:函数级耗时与内存开销分析,定位热点函数与调用路径。
- DebugBar:开发环境实时查看请求时间、内存、数据库查询等(仅用于开发/测试)。
五、落地组合建议
- 低成本起步:应用内日志+中间件 + Linux 工具 + MySQL 慢查询,快速建立可观测基线。
- 可视化与告警:引入 Prometheus + Grafana,统一展示QPS、P95/P99、错误率,配置阈值告警。
- 企业级全栈:接入 Datadog / New Relic APM,获得分布式追踪、代码级剖析、自动发现与SLA 告警。
- 稳定性保障:使用 Supervisor 守护队列/常驻进程,异常自动拉起并集中日志。