让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

技术发展

技术发展

我是何如通偏激焰图分析让哄骗CPU占用下落近20%的

2024-10-30

阿里妹导读共享作家在使用Arthas火焰图器具进行Java哄骗性能分析和优化的领导。

看到标题是不是许多东谈主在思是不是标题党了,是也不是👻~,请听我细细谈来~

咱们的哄骗代码是用Java写的,因此使用的火焰图器具是Arthas,底下的分析亦然基于此。

Arthas火焰图使用

官方文档:

https://arthas.aliyun.com/doc/profiler.html

启动火焰图分析

$ profiler startStarted [cpu] profiling

罢手

$ profiler stop --format flamegraphprofiler output file: /tmp/test/arthas-output/20211207-111550.htmlOK

如上所示默许会生成一个html的火焰图文献,指定输出方法关系可参考官方文档。

火焰图示例

火焰图横轴代表CPU的占用技能,横轴越宽代表CPU占用越多,鼠标移动上去也不错看到这个表率究竟占用了若干CPU。

纵轴代表调用栈,火焰越高代表调用栈越深。

其中绿色部分代表Java代码,黄色部分代表JVM C++代码,橙色部分代表内核态C谈话代码,红色代表用户态C谈话代码。

何如分析火焰图(附实战)

事情是这么的,咱们的业务疏忽来说即是监听发货音信后履行一系列操作,分自动和批量两种样子,批量的大用户进行业务操作时,会同期有几万单、十几万单的产生,相配于大促时的流量了,因此cpu占用老是有尖刺,偶然单机甚而能到80+%。并且日常流量时嗅觉cpu占用和流量数据比较也有些偏高,因此决定使用火焰图分析下。

从上往下看

底下选拔两个在优化经过中比较典型的两个案例。

案例一

火焰图分析最疏忽的样子即是找大平顶,淌若一个表率占用比较耗时、调用次数许多,那么他的横轴一定是比较宽的,体现到火焰图上即是一个大平顶。

图中红框是业务代码的履行,其中蓝框是初步定位到的耗时操作,点开后不错看到左侧是sentinel采样CPU占用,占用总CPU3%~4%,这部分应该是不会随流量高潮而升高的, 此次就先莫得动这块。第二块是在metaq的消费者代码里履行的,因此要点神志,因为咱们的哄骗是音信驱动的,摄取tp的发货音信后进行对应的操作,metaq流量升高,这部分对应的操作不祥率亦然会随之升高的。

占总CPU占用达到了惊东谈主的9.3%。

点开后不错看到是脱敏器具,其对性能的影响险些和发货音信皆平了,排查后发现是咱们部门里面使用的链路汇注器具,在汇注metaq音信时会对音信进行脱敏解决,脱敏器具会对姓名、邮箱、手机号瓜差别进行正则匹配,而咱们吸收的交游音信中是包含统共这个词订单信息的,这个对象是很大的(包含彭胀字段等诸多信息),对其使用正则进行脱敏责任量纷乱。平淡情况下使用此器具汇注线茂盛量对性能影响不是很大,但是在咱们的场景影响有点出乎猜测......

由于咱们平时基本不会在链路图上神志音信的现实,一般都是用来看HSF链路,因此径直把dp对metaq的汇注关闭了。

案例二

使用全局搜索后真实占用了快要6%的CPU,这然则日常的流量下截取的火焰图,系统流量升高时占用比例会更大。

点开后不错看到是进行HSF调用的技能,赢得Java调用栈比较耗时,之前写代码的技能怀疑过赢得调用栈会比较耗性能,但没思到真实比一次HSF调用自己的耗时都大了。这个所在之前是为了赢得调用开端,打印到日记中节略排查问题的(历史代码),后续将HSF的调用日记改成了通过HSF Filter的样子,去掉了赢得调用栈的逻辑。

其实案例二我一运转不是从上往下看定位到的,因为调用HSF的所在不啻一个,每个耗时其实也不长,全体看的话从上往下还是比较难发现的。

从下往上看

案例二

淌若从上往下看后果不剖释,不错从咱们系统主要流量进口处进行分析,从底下进口一步步往上点,也不错发现问题,带着怀疑的派头来找,上述的案例二我一运转并莫得注重到上方的问题,我是一步步从音信进口看,然后点到上头发现的这个调用豪侈真实比HSF多的。

不错看到这个调用不是集合在一个所在的,细看每个所在都有调用,是以全体对性能的影响才那么大。

全局搜索后不错看到到处都有调用(图示紫色部分)。

从下往上找更符合细化的技能,特意对某个链路进行分析优化。

优化后果

底下来让咱们蓄意一下数据,来望望楼主是不是标题党了。

全体大要优化了5~6%掌握(7月份的技能,机器数目是30台,8月缩容到了27台),取5%,其中系统CPU占用在6.5%掌握,从日常流量上来看,用户态cpu从26%到21%,下落19%+,磋商缩容的关系,20%的优化大抵是有的👻。

由于这是日常流量的优化已毕,大促流量突增时,系统负载裁减应该会更剖释,优化后大用户批量操作时瞬时流量也基本不会有机器cpu占用跨越60%了。

后续双十一压测也会不息神志优化,流量高潮后更多问题可能就会暴透露来。

返回

Powered by 物联网资讯网 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024