Arthas的JVM相关命令

dashboard

image-20211030205232906

当前系统的实时数据面板

线程:

  • ID:Java 级别的线程 ID,注意这个 ID 不能跟 jstack 中的 nativeID 一一对应
  • NAME:线程名称
  • GROUP:线程组名称
  • PRIORITY:线程优先级,1 ~ 10 之间的数字,越大表示优先级越高
  • STATE:线程的状态
  • CPU%:线程的 cpu 使用率。比如采样间隔 1000ms,某个线程的增量 cpu 时间为 100ms,则 cpu 使用率 = 100/1000=10%
  • DELTA_TIME:上次采样之后线程运行增量 CPU 时间,数据格式为秒
  • TIME:线程运行总 CPU 时间,数据格式为 分:秒
  • INTERRUPTED:线程当前的中断位状态
  • DAEMON:是否是 daemon 线程

内存:

  • used:当前使用了多少内存
  • total:总共分配了多少内存
  • max:最大使用了多少
  • usage:使用比
  • gc:垃圾回收器

thread

查看当前线程信息,查看线程的堆栈,参数说明:

image-20211030210019576

指定采样时间:

thread -i 1000 -n 3

隔 1 秒钟之后取样。

查看指定状态的线程:

thread --state WAITING

image-20211030211924986

jvm

查看当前 JVM 信息:

image-20211030212159604

THREAD 相关:

  • COUNT:JVM 当前活跃的线程数
  • DAEMON-COUNT:JVM 当前活跃的守护线程数
  • PEAK-COUNT:从 JVM 启动开始曾经活着的最大线程数
  • STARTED-COUNT:从 JVM 启动开始总共启动过的线程次数
  • DEADLOCK-COUNT:JVM 当前死锁的线程数

文件描述符相关:

  • MAX-FILE-DESCRIPTOR-COUNT:JVM 进程最大可以打开的文件描述符数
  • OPEN-FILE-DESCRIPTOR-COUNT:JVM 当前打开的文件描述符数

sysprop

查看当前 JVM 的系统属性:

image-20211030212316570

  • 查看所有属性:sysprop
  • 查看单个属性:sysprop java.version

修改单个属性:

sysprop user.country
sysprop user.country CN

image-20211030230002949

sysenv

查看当前 JVM 的环境属性:

  • sysenv:查看所有
  • sysenv USER:查看指定的信息

image-20211031090722721

image-20211031090749061

vmoption

查看,更新 VM 诊断相关的参数:

  • vmoption:查看所有的 option
  • vmoption KEY:查看指定的option

image-20211031090936052

getstatic

通过 getstatic 命令可以方便的查看类的静态属性:

getstatic demo.MathGame random

image-20211031091159039

ognl

执行 ognl 表达式,从 3.0.5 版本增加,参数说明如下:

image-20211031091250555

调用静态函数:

ognl '@java.lang.System@out.println("hello")'

image-20211031091352156

获取静态类的静态字段:

ognl '@demo.MathGame@random'

image-20211031091446577

执行多行表达式,赋值给临时变量:

ognl '#value1=@System@getProperty("java.home"), #value2=@System@getProperty("java.runtime.name"), {#value1, #value2}'

image-20211031091540689

End

posted @ 2021-10-31 09:18  BNTang  阅读(502)  评论(0)    收藏  举报