定位思路与快速检查
常见瓶颈与对策
| 瓶颈点 | 典型症状 | 快速验证 | 优化要点 |
|---|---|---|---|
| 进程数与内存 | 内存占用高、频繁回收/重启、偶发502 | top/htop、ps 统计进程数、dmesg/OOM | 合理设置pm.max_children;动态模式下调start/min_spare/max_spare;必要时用pm.max_requests定期重启释放泄漏 |
| 进程模型不当 | 高峰期排队、低峰期资源浪费 | 观察请求排队与进程数波动 | 负载稳定偏static,波动大用dynamic;按内存与CPU核数调参 |
| 代码与数据库 | 个别接口RT高、吞吐上不去 | Slow Log、MySQL 慢查询 | 启用OPcache;SQL加索引、分页/缓存;热点数据上Redis/Memcached |
| 反向代理与静态资源 | PHP进程被静态资源占用 | access.log 中静态资源命中 | 用Nginx直接服务静态资源,PHP只处理动态请求 |
| 日志与监控不足 | 问题难复现、定位慢 | 无慢日志或指标缺失 | 开启PHP-FPM Slow Log与request_terminate_timeout;接入Zabbix/Nagios/Munin做容量与异常告警 |
关键配置与计算示例
建议的排查顺序