以PHP开发的接口服务为例总结一下接口相关的性能调优和监控:
1、接口性能信息收集
- 关注接口整体时间开销:
①、可通过在接口调用前后打点算差值。
②、通过nginx配置在access_log日志里打出$request_time,请求响应的时间。来查看接口的响应速度。 - xhprof收集API接口开销:
关注子环节时间开销。
2、API时间开销定位和分析
- 时间开销情况分析:
推荐用xhprof生成的图,很容易找到瓶颈在哪个步骤。 - 剥洋葱定位法:
把复杂问题先简单化,对简单的问题逐一攻破,一层一层,通过注释代码调试。。此法有点笨,有点慢,但是实用,还可以对接口进一步的了解。
3、API上下游性能指标
- MySQL时间开销优化:慢查询查找,用explain分析。最好还是找到慢查询后请公司DBA帮忙调优。
- 后端服务调优:设置请求下游超时时间。
- API返回调优:压缩数据再传输
4、API服务的稳定性SLA
- 服务监控:supervisor
- API负载均衡
- 服务报警
- 测试用例