全局监控下如何快速落地海量资源.pdfVIP

全局监控下如何快速落地海量资源.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

2021/12/2627|

在Java应用的性能分析决策树中,我会主要关注两个方面:堆和栈。

工具选型上花太多功夫,我们只需要选择易用、成本低的工具就可以了。当前开源的Java

工具已经完全可以实现所有的功能了。

之前我在专栏中提到过JVisualVM,这是一个我非常常用的工具之一。不过强调一

点,在全链路压测过程中,如果我们用基于k8s+docker的微服务分布式架构,那使用

JVisualVM会比较麻烦。因为它的每个Java实例都需要单独连接,并且要把容器中的端口

映射出来,操作上比较繁琐。

3/18

2021/12/2627|

我们的这个专栏的项目使用的是SpringCloud架构,这也是当前市场上最流行的一种架

构了。我选择的工具是SpringBootAdmin,在应用中集成了相关依赖,你可以打开

SpringBootAdmin,查看应用墙。

这个应用墙可以看到一个应用的所有实例。要注意的是,这里的绿色只是代表进程端口的

启动是正常的,并不表明这个应用性能就是好的。

如果你想看具体的性能分析决策树中的信息,可以点击实例进入到相应的界面中。下

面这张图展示的是我经常看的几个界面。

在上面的这个图里,我们不仅可以看到堆和非堆内存使用的情况,也同时可以判断GC的

效率,这就可以对应到我们性能分析决策树的GU和Memory三个部分的计数器

了。

4/18

2021/12/2627|

再来看一下线程视图:

程视图中,可以看到自打开此界面后的所有线程状态。我们可以通过这个视图判断线

程是否健康。

像上面这就是线程的blocked过多的情况。这时我们就要去使用jstack之类令去

打印栈信息,然后打到对的时间点上。

请注意,这个界面即使全是绿色也并不能说明性能就是好的。比如下面这

5/18

2021/12/2627|

这种情况下,我们还要进一步判断方法执行时间是不是过长。像上面这里,绿色段较

长的地方也是不合理的。这个界面要多观察一会,不能刚打开就判断,不然就看不到状态

随着时间变化的趋势了。

不过,要判断Java应用方法的执行时间,只看Java应用也是不行的。我们还要结合

上节课提到的操作系统的计数器做关联分析。

关联分析的逻辑就是:当uscpu(注意这里是uscpu,不要看错了,这可是关键的一个

起点)使用率过高时,查看相应的进程;当确定了是Java进程时,再到线程图(上面两张

图)界面查看方法的执行时间。

当我们点击线程图(上面两中的某段带有红颜色或绿颜色的线时,就可以看到相应

的Java栈了:

代码

1http-nio-8401-exec-884#86813daemonprio=5os_prio=0tid=0x00007f2868073000

2java.lang.Thread.State:

文档评论(0)

kay5620 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8001056127000014

1亿VIP精品文档

相关文档