API接口的性能信息收集和调整
API层面的调优
目录
-
接口性能信息收集
-
API时间开销定位与分析
-
API上下游性能的优化
-
API服务的稳定性SLA (非核心2~3个9,核心5~6个9)
接口性能信息收集
-
关注接口的整体时间开销(不去关心API内部只关注时间开销)
-
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上下游性能优化 :
-
MySQL时间开销优化 (慢查询优化,如果有可以使用explain分析一下)
-
后端服务调优(例如,超时时间没做。把全部拖死造成雪崩效应)
-
API返回调优(网络传输时间耗费大,可以考虑压缩数据等…)
API服务稳定性:
-
服务监控(作为旁观者,不关心内部)
-
监控服务是否存活 例如supervisor
-
API负载均衡