线程分析功能提供线程粒度的CPU耗时和每类线程数量的统计,并且每5分钟记录一次线程的方法栈并聚合,可真实还原代码执行过程,帮助您快速定位线程问题。当发现集群的CPU使用率过高,或者出现大量慢方法时,可以通过线程分析功能找到消耗CPU最多的线程或方法。
说明
该功能目前仅支持Java应用。
前提条件
重要
ARMS应用监控面向已开通新版计费的用户提供全新的监控详情页面,新版计费详情,请参见产品计费(新版)。
对于未开通新版计费的用户,如需查看新版监控详情页面,可在应用列表页面单击切换新版。
已为应用安装探针,具体操作,请参见应用监控接入概述。
功能入口
登录ARMS控制台,在左侧导航栏选择 。
在应用列表页面顶部选择目标地域,然后单击目标应用名称。
说明语言列的图标含义如下:
:接入应用监控的Java应用。
:接入应用监控的Golang应用。
:接入应用监控的Python应用。
-:接入可观测链路 OpenTelemetry 版的应用。
在上方导航栏中选择
。
进行线程分析
线程分析页面的左侧列表展示了应用的全部线程,您可以根据CPU耗时统计快速发现异常线程。选中某一异常线程后,再根据右侧的CPU耗时和线程数曲线图分析CPU耗时与线程数变化,例如分析每分钟的线程总数是否过多。
您还可以单击异常线程的方法栈,查看指定时间内的真实运行方法栈,例如查看处于BLOCKED状态的线程对应的方法,从而优化指定代码段,以便降低CPU使用率。
如果您的探针版本为2.7.3.5或以上版本,ARMS通过持续剖析能力提供了数据更准确的线程CPU使用方法栈信息,效果如下图所示,更多信息,请参见持续剖析。
说明
如果单击方法栈后,显示无数据,排查方法如下:
如果探针版本为2.7.3.5以下,则在
页签的线程设置区域查看线程分析方法栈开关是否开启。如未开启,则无法记录方法栈信息;如已开启,则每5分钟采集一次方法栈信息。如果探针版本为2.7.3.5及以上,则在
页签的持续剖析区域查看总开关和CPU热点开关是否开启。如未开启,则无法记录方法栈信息。
文档内容是否对您有帮助?