API接口的性能信息收集和调整

yfsama 发布于 2019-03-13 2056 次阅读


API接口的性能信息收集和调整

API层面的调优

目录

  • 接口性能信息收集
  • API时间开销定位与分析
  • API上下游性能的优化
  • API服务的稳定性SLA (非核心2~3个9,核心5~6个9)

接口性能信息收集

  1. 关注接口的整体时间开销(不去关心API内部只关注时间开销)
  2. xhprof收集API接口开销
获取运行时间的方法
方法一
在 nginx.conf 添加
nginx查看
Log_format  main….内
添加 $request_time $request_response_time
在nginx.conf.default 21行附近
 方法二
代码打点记录
…最简单的
方法三xhprof (推荐)
安装和使用
推荐阅读(基础)
优化建议:尽量优化红色或黄色的部分优化
(xhprof官方目前的没维护好PHP7,但是github里面有挺多的支持,大家可以看看)
使用方法:
xhprof_enable();//开始记录
….
$xhprofData = xhprof_disable();停止记录
 
//$XHPROF_ROOT = “php/library/xxx”
 
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprofData,”xhprof_foo”);
hader(“XhprofID:”. $run_id)
(坑挺多的!!!)
判断时间开销最好加使用xhprof的图片
除了这个方法还可以使用“剥洋葱方法“一层层注视代码一层层排除出问题。
先从最外面的,然后再往下。

API上下游性能优化 :

  1. MySQL时间开销优化 (慢查询优化,如果有可以使用explain分析一下)
  2. 后端服务调优(例如,超时时间没做。把全部拖死造成雪崩效应)
  3. API返回调优(网络传输时间耗费大,可以考虑压缩数据等...)

API服务稳定性:

  1. 服务监控(作为旁观者,不关心内部)
  2. 监控服务是否存活 例如supervisor
  3. API负载均衡