Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

下载与安装

在线安装

通过wget或curl命令访问如下的url以下载Arthas的启动程序:

...

需要注意的是,arthas与目标进程须具备相同的用户权限,否则在运行过程中可能出现访问权限相关的问题。

离线安装

上述在线安装过程中,arthas运行程序的获取是通过arthas-boot.jar直接在当前机器下载的。

...

arthas运行程序包解压后,须放在服务器上的用户根目录下,比如herman用户,放在/home/herman/.arthas下即可。

使用

启动

运行arthas-boot.jar后,控制台将会显示当前机器上正在运行的java程序列表。

选择目标进程,输入对应的序号并输入回车即可进入对该进程的监控。

Dashboard

进入监控后,输入dashboard命令,即可看到整个进程的概况。输入Q或Ctrl+c可退出预览。

...

  1. 进程内的线程概况:线程运行时间,线程运行状态等

  2. 进程的内存使用概况:例如堆内和堆外内存使用情况,新生代、老年代等对象占用情况

  3. 运行环境信息:操作系统版本、JDK版本等

Profiler

profiler 命令支持生成应用热点的火焰图。本质上是通过不断的采样,然后把收集到的采样结果生成火焰图。

...

火焰图就是看顶层的哪个函数占据的宽度最大。只要有"平顶"(plateaus),就表示该函数可能存在性能问题。

CPU抽样

启动一次CPU抽样任务,执行一段时间后即可关闭,并输出结果火焰图。

...

下图展示了一次简单的单线程IoTDB写入任务执行过程中某一段时间的CPU抽样片段。


内存抽样

进行内存分析时,堆分析器需要HotSpot调试符号,Oracle JDK已经将它们嵌入到libjvm.so中,但是OpenJDK在构建时,被打包到了单独的包中。

...

下图展示了一次简单的单线程IoTDB写入任务执行过程中某一段时间的内存抽样片段。

参考

Arthas 应用诊断利器 (aliyun.com)

...