定位思路总览
快速排查步骤
关键指标与判断要点
| 指标 | 如何查看 | 典型瓶颈表现 | 下一步动作 |
|---|---|---|---|
| CPU 使用率 | top/htop、vmstat 1 | 多核持续接近 100% | 用 ps/top 找 Top N 的 php-fpm 进程,strace/perf 看系统调用与热点函数 |
| 内存与 OOM | top/htop、pmap -x |
RSS 持续升高、OOM-killer 触发 | 分析内存泄漏(如对象未释放)、优化缓存/会话存储 |
| I/O 等待 | iostat -x 1、vmstat 1 | await、svctm 高,util 接近 100% | 查慢查询、日志/附件写入、外部存储或网络瓶颈 |
| 并发与队列 | PHP-FPM 状态页(pm.status_path) | active == pm.max_children 且 queue > 0 | 增加进程数或优化慢请求,必要时扩容/限流 |
| 慢请求 | PHP-FPM 慢日志 | 大量请求超过阈值 | 定位到具体脚本/函数,优化算法与 SQL |
| 数据库 | MySQL slow log、pt-query-digest | 慢 SQL、缺少索引 | 加索引、改写 SQL、引入查询缓存/读写分离 |
| 外部依赖 | 应用日志、Blackfire/Xdebug | 调用第三方 API 耗时 | 加缓存、重试/熔断、异步化或降级处理 |
常用命令与配置示例
常见瓶颈与优化方向