接口性能分析实践
背景
风险:项目出了几次问题,减少风险
代码:之前代码没考虑未来需要,性能急剧下降
监控平台:Nginx日志发现,请求很慢
我们的目标:要追求高性能
问题
你们是如何做性能分析的?
怎么做的
xhprof | xdebug | tideway + xhgui | |
---|---|---|---|
搭建 | 安装xhprof扩展,即开即用 | 安装xdebug即可,即开即用 | 复杂(依赖mongodb) |
采集 | 1. 只能看单次调试,一次经常说明不了问题2. 常常和用户有关系,并不是所有函数都会触发 | ——— | 1. 可以抽象采集,可以完整采集2. 信息记录完整,比如请求信息 |
信息展示 | 看不了SQL执行 | ——— | 1. 支持SQL展示2. 支持请求信息展示3. 可视化信息丰富支持火焰图、瀑布图(单次请求)4. 支持请求性能对比 |
备注
一、新版才支持SQL
tideways_xhprof.so => tideways.so
调整header.php 的文件 把相关代码都调整成扩展为tideways的流程即可!
二、如何搭建非侵入式分析平台
https://blog.it2048.cn/article-tideways-xhgui/
三、生成classmap + apcu
https://blog.csdn.net/zhouyuqi1/article/details/81098650
结果
流量减少了一半
TOP10,部分接口性能提升1倍,剩余还在优化中
方案总结
多级缓存:apcu
静态变量(主要是针对Web)
一次接口只会调用一次用户信息
减少循环调用
多次hget调整为hmget
不要过度优化
性能优化,避免自嗨,需要抓重点,用数据说明
Last updated