文章插图
结论:
发现主要开销在free,malloc,json解析上面
10.4 火焰图分析cpua) ****生成用户态cpu火焰图
//on-CPU user
sh ngx_on_cpu_u.sh pid
//进入结果目录
cd ngx_on_cpu_u
//开一个临时端口8088
python -m SimpleHTTPServer 8088
//打开浏览器输入地址
127.0.0.1:8088/pid.svg
文章插图
结论:
发现代码里面有频繁的解析json操作,并且发现这个json库性能不高,占用cpu挺高 。
10.5 案例总结**a) **分析请求流量异常,得出nginx upstream后端机器响应时间拉长
**b) **分析nginx进程cpu高,得出nginx内部模块代码有耗时的json解析以及内存分配回收操作
10.5.1 深入分析根据以上两点问题分析的结论,我们进一步深入分析 。
后端upstream响应拉长,最多可能影响nginx的处理能力 。但是不可能会影响nginx内部模块占用过多的cpu操作 。并且当时占用cpu高的模块,是在请求的时候才会走的逻辑 。不太可能是upstram后端拖住nginx,从而触发这个cpu的耗时操作 。
10.5.2 解决方式遇到这种问题,我们优先解决已知的,并且非常明确的问题 。那就是cpu高的问题 。解决方式先降级关闭占用cpu过高的模块,然后进行观察 。经过降级关闭该模块cpu降下来了,并且nginx请求流量也正常了 。之所以会影响upstream时间拉长,因为upstream后端的服务调用的接口可能是个环路再次走回到nginx 。
【运维必备的问题定位工具及案例分析】
推荐阅读
- 淘宝的促销活动有哪些 淘宝优惠促销什么意思
- 34岁程序员面试被拒,HR:只招30岁以下,活好能加班工资又少的人
- 茉莉苞茶的功效与禁忌,玳玳花主要的功效作用以及禁忌
- 什么牌子的金银花茶比较好,金银花茶的作用
- 买电脑的时候,一定要绕过这8个坑!
- 美容养颜润肤的健康花草茶,品饮花草茶
- 最赚钱的十大网站创业方向
- PHP中的traits使用详解
- 如何快速安全的插入千万条数据?
- Ubuntu 上 Wireshark 的安装与使用