线程分析功能提供线程粒度的 CPU 耗时和每类线程数量的统计,并且每 5 分钟记录一次线程的方法栈并聚合,可真实还原代码执行过程,帮助您快速定位线程问题。当发现集群的 CPU 使用率过高,或者出现大量慢方法时,可以通过线程分析功能找到消耗 CPU 最多的线程或方法。

功能入口

  1. 登录 ARMS 控制台
  2. 在左侧导航栏中选择应用监控 > 应用列表
  3. 应用列表页面单击目标应用的名称。
  4. 在左侧导航栏中选择应用诊断 > 线程分析

进行线程分析

线程分析页面的左侧列表展示了应用的全部线程,您可以根据 CPU 耗时统计快速发现异常线程。选中某一异常线程后,再根据右侧的 CPU 耗时线程数时序曲线图分析 CPU 耗时与线程数变化,例如分析每分钟的线程总数是否过多,或者处于 BLOCKED 状态的线程数量是否过多。

pg_am_threads_profiling

您还可以单击方法栈,查看指定时间内的真实运行方法栈,例如查看处于 BLOCKED 状态的线程对应的方法,从而优化指定代码段,以便降低 CPU 使用率。

pg_am_method_stack
说明 如果单击方法栈后,显示无数据,则可单击应用设置,在自定义配置页签查看线程诊断方法栈开关是否开启。如未开启,则无法记录方法栈信息;如已开启,则每 5 分钟采集一次方法栈信息。