目录

一、Arthas jvm相关指令之dashboard

二、Arthas jvm相关指令之thread

三、Arthas jvm相关指令之jvm

四、Arthas jvm相关指令之sysprop

五、Arthas jvm相关指令之sysenv

六、Arthas jvm相关指令之vmoption

七、Arthas jvm相关指令之其他指令


一、Arthas jvm相关指令之dashboard

  • dashboard :展示当前系统的实时数据面板,按 ctrl+c 退出。当运行在Ali-tomcat时,会显示当前tomcat的实时信息,如HTTP请求的qps, rt, 错误数, 线程池信息等等。

参数说明:

参数名称

参数说明

[i:]

刷新实时数据的时间间隔 (ms),默认5000ms

[n:]

刷新实时数据的次数

使用参考:

[arthas@14476]$ dashboard
ID   NAME                          GROUP          PRIORITY  STATE    %CPU      DELTA_TIM TIME      INTERRUPT DAEMON
-1   C1 CompilerThread3            -              -1        -        0.0       0.000     0:0.953   false     true
-1   C2 CompilerThread1            -              -1        -        0.0       0.000     0:0.781   false     true
-1   C2 CompilerThread2            -              -1        -        0.0       0.000     0:0.484   false     true
-1   C2 CompilerThread0            -              -1        -        0.0       0.000     0:0.406   false     true
1    main                          main           5         TIMED_WA 0.0       0.000     0:0.359   false     false
23   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.296   false     true
5    Attach Listener               system         5         RUNNABLE 0.0       0.000     0:0.078   false     true
16   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.062   false     true
-1   GC task thread#0 (ParallelGC) -              -1        -        0.0       0.000     0:0.062   false     true
-1   VM Thread                     -              -1        -        0.0       0.000     0:0.062   false     true
-1   GC task thread#3 (ParallelGC) -              -1        -        0.0       0.000     0:0.062   false     true
Memory                    used    total    max     usage    GC
heap                      39M     95M      95M     40.92%   gc.ps_scavenge.count          5
ps_eden_space             7M      24M      25M     29.12%   gc.ps_scavenge.time(ms)       40
ps_survivor_space         0K      4096K    4096K   0.00%    gc.ps_marksweep.count         1
ps_old_gen                31M     67M      67M     47.45%   gc.ps_marksweep.time(ms)      51
nonheap                   28M     29M      -1      97.37%
code_cache                5M      5M       240M    2.31%
metaspace                 20M     21M      -1      97.53%
compressed_class_space    2M      2M       1024M   0.25%
Runtime
os.name                                                     Windows 10
os.version                                                  10.0
java.version                                                1.8.0_291
java.home                                                   C:\Program Files\Java\jdk1.8.0_291\jre
systemload.average                                          -1.00
processors                                                  12
timestamp/uptime                                            Fri Sep 17 20:58:42 CST 2021/97s

-i:指定刷新实时数据的时间间隔

数据说明:

  • 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线程;

二、Arthas jvm相关指令之thread

thread指令:查看当前线程信息,查看线程的堆栈

参数说明:

参数名称

参数说明

id

线程id

[n:]

指定最忙的前N个线程并打印堆栈

[b]

找出当前阻塞其他线程的线程

[i <value>]

指定cpu使用率统计的采样间隔,单位为毫秒,默认值为200

[--all]

显示所有匹配的线程

使用参考:

thread:当没有参数时,显示第一页线程的信息,默认按照CPU增量时间降序排列,只显示第一页数据。

[arthas@18544]$ thread
Threads Total: 32, NEW: 0, RUNNABLE: 8, BLOCKED: 0, WAITING: 4, TIMED_WAITING: 3, TERMINATED: 0, Internal threads: 17
ID   NAME                          GROUP          PRIORITY  STATE    %CPU      DELTA_TIM TIME      INTERRUPT DAEMON
2    Reference Handler             system         10        WAITING  0.0       0.000     0:0.000   false     true
3    Finalizer                     system         8         WAITING  0.0       0.000     0:0.000   false     true
4    Signal Dispatcher             system         9         RUNNABLE 0.0       0.000     0:0.000   false     true
5    Attach Listener               system         5         RUNNABLE 0.0       0.000     0:0.078   false     true
13   arthas-timer                  system         5         WAITING  0.0       0.000     0:0.000   false     true
16   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.031   false     true
17   arthas-NettyWebsocketTtyBoots system         5         RUNNABLE 0.0       0.000     0:0.015   false     true
18   arthas-NettyWebsocketTtyBoots system         5         RUNNABLE 0.0       0.000     0:0.000   false     true
19   arthas-shell-server           system         5         TIMED_WA 0.0       0.000     0:0.000   false     true
20   arthas-session-manager        system         5         TIMED_WA 0.0       0.000     0:0.000   false     true
21   arthas-UserStat               system         5         WAITING  0.0       0.000     0:0.000   false     true
23   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.156   false     true
24   arthas-command-execute        system         5         RUNNABLE 0.0       0.000     0:0.031   false     true
1    main                          main           5         TIMED_WA 0.0       0.000     0:0.437   false     false
6    Monitor Ctrl-Break            main           5         RUNNABLE 0.0       0.000     0:0.062   false     true
-1   C2 CompilerThread2            -              -1        -        0.0       0.000     0:0.421   false     true
-1   GC task thread#8 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#7 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#6 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   VM Periodic Task Thread       -              -1        -        0.0       0.000     0:0.000   false     true
-1   GC task thread#0 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   C2 CompilerThread0            -              -1        -        0.0       0.000     0:0.468   false     true
-1   Service Thread                -              -1        -        0.0       0.000     0:0.000   false     true
-1   C2 CompilerThread1            -              -1        -        0.0       0.000     0:0.546   false     true
-1   GC task thread#9 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#1 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   C1 CompilerThread3            -              -1        -        0.0       0.000     0:0.937   false     true

thread –all:显示所有匹配的线程,显示所有匹配线程信息,有时需要获取全部JVM的线程数据进行分析。

[arthas@18544]$ thread -all
Threads Total: 32, NEW: 0, RUNNABLE: 8, BLOCKED: 0, WAITING: 4, TIMED_WAITING: 3, TERMINATED: 0, Internal threads: 17
ID   NAME                          GROUP          PRIORITY  STATE    %CPU      DELTA_TIM TIME      INTERRUPT DAEMON
2    Reference Handler             system         10        WAITING  0.0       0.000     0:0.000   false     true
3    Finalizer                     system         8         WAITING  0.0       0.000     0:0.000   false     true
4    Signal Dispatcher             system         9         RUNNABLE 0.0       0.000     0:0.000   false     true
5    Attach Listener               system         5         RUNNABLE 0.0       0.000     0:0.078   false     true
13   arthas-timer                  system         5         WAITING  0.0       0.000     0:0.000   false     true
16   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.031   false     true
17   arthas-NettyWebsocketTtyBoots system         5         RUNNABLE 0.0       0.000     0:0.015   false     true
18   arthas-NettyWebsocketTtyBoots system         5         RUNNABLE 0.0       0.000     0:0.000   false     true
19   arthas-shell-server           system         5         TIMED_WA 0.0       0.000     0:0.000   false     true
20   arthas-session-manager        system         5         TIMED_WA 0.0       0.000     0:0.000   false     true
21   arthas-UserStat               system         5         WAITING  0.0       0.000     0:0.000   false     true
23   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.234   false     true
24   arthas-command-execute        system         5         RUNNABLE 0.0       0.000     0:0.062   false     true
1    main                          main           5         TIMED_WA 0.0       0.000     0:0.437   false     false
6    Monitor Ctrl-Break            main           5         RUNNABLE 0.0       0.000     0:0.062   false     true
-1   C2 CompilerThread2            -              -1        -        0.0       0.000     0:0.437   false     true
-1   GC task thread#8 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#7 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#6 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   VM Periodic Task Thread       -              -1        -        0.0       0.000     0:0.000   false     true
-1   GC task thread#0 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   C2 CompilerThread0            -              -1        -        0.0       0.000     0:0.468   false     true
-1   Service Thread                -              -1        -        0.0       0.000     0:0.000   false     true
-1   C2 CompilerThread1            -              -1        -        0.0       0.000     0:0.546   false     true
-1   GC task thread#9 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#1 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   C1 CompilerThread3            -              -1        -        0.0       0.000     0:1.062   false     true
-1   VM Thread                     -              -1        -        0.0       0.000     0:0.046   false     true
-1   GC task thread#2 (ParallelGC) -              -1        -        0.0       0.000     0:0.031   false     true
-1   GC task thread#3 (ParallelGC) -              -1        -        0.0       0.000     0:0.031   false     true
-1   GC task thread#5 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#4 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true

thread id:显示指定线程的运行堆栈

[arthas@18544]$ thread 2
"Reference Handler" Id=2 WAITING on java.lang.ref.Reference$Lock@1e129935at java.lang.Object.wait(Native Method)-  waiting on java.lang.ref.Reference$Lock@1e129935at java.lang.Object.wait(Object.java:502)at java.lang.ref.Reference.tryHandlePending(Reference.java:191)at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

thread -b:找出当前阻塞其他线程的线程

有时候我们发现应用卡住了, 通常是由于某个线程拿住了某个锁, 并且其他线程都在等待这把锁造成的。 为了排查这类问题, arthas提供了thread -b, 一键找出那个罪魁祸首。

使用示例:

[arthas@13048]$ thread -b
"Thread-A" Id=12 BLOCKED on java.lang.Object@60533fa9 owned by "Thread-B" Id=13at com.wsh.DeadLockTest.lambda$main$0(DeadLockTest.java:16)-  blocked on java.lang.Object@60533fa9-  locked java.lang.Object@3e26b034 <---- but blocks 1 other threads!at com.wsh.DeadLockTest$$Lambda$1/1066516207.run(Unknown Source)at java.lang.Thread.run(Thread.java:748)

注意, 目前只支持找出synchronized关键字阻塞住的线程, 如果是java.util.concurrent.Lock, 目前还不支持。(本文使用的Arthad版本:3.5.4)

thread -n xx:展示当前最忙(CPU占用率前N位)的前N个线程并打印堆栈

[arthas@18544]$ thread -n 3
"Reference Handler" Id=2 cpuUsage=0.0% deltaTime=0ms time=15ms WAITING on java.lang.ref.Reference$Lock@1e129935at java.lang.Object.wait(Native Method)-  waiting on java.lang.ref.Reference$Lock@1e129935at java.lang.Object.wait(Object.java:502)at java.lang.ref.Reference.tryHandlePending(Reference.java:191)at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)"Finalizer" Id=3 cpuUsage=0.0% deltaTime=0ms time=15ms WAITING on java.lang.ref.ReferenceQueue$Lock@7dadc120at java.lang.Object.wait(Native Method)-  waiting on java.lang.ref.ReferenceQueue$Lock@7dadc120at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)"Signal Dispatcher" Id=4 cpuUsage=0.0% deltaTime=0ms time=0ms RUNNABLE

字段说明:

  • 没有线程ID,包含[Internal]表示为JVM内部线程,参考dashboard命令的介绍。
  • cpuUsage为采样间隔时间内线程的CPU使用率,与dashboard命令的数据一致。
  • deltaTime为采样间隔时间内线程的增量CPU时间,小于1ms时被取整显示为0ms。
  • time 线程运行总CPU时间。

thread -i:指定采样时间间隔

  • thread -i 1000 : 统计最近1000ms内的线程CPU时间。
  • thread -n 3 -i 1000 : 列出1000ms内最忙的3个线程栈。
[arthas@18544]$ thread -n 3
"Reference Handler" Id=2 cpuUsage=0.0% deltaTime=0ms time=15ms WAITING on java.lang.ref.Reference$Lock@1e129935at java.lang.Object.wait(Native Method)[arthas@18544]$ thread -i 1000
Threads Total: 32, NEW: 0, RUNNABLE: 8, BLOCKED: 0, WAITING: 4, TIMED_WAITING: 3, TERMINATED: 0, Internal threads: 17
ID   NAME                          GROUP          PRIORITY  STATE    %CPU      DELTA_TIM TIME      INTERRUPT DAEMON
2    Reference Handler             system         10        WAITING  0.0       0.000     0:0.015   false     true
3    Finalizer                     system         8         WAITING  0.0       0.000     0:0.015   false     true
4    Signal Dispatcher             system         9         RUNNABLE 0.0       0.000     0:0.000   false     true
5    Attach Listener               system         5         RUNNABLE 0.0       0.000     0:0.078   false     true
13   arthas-timer                  system         5         WAITING  0.0       0.000     0:0.000   false     true
16   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.031   false     true
17   arthas-NettyWebsocketTtyBoots system         5         RUNNABLE 0.0       0.000     0:0.015   false     true
18   arthas-NettyWebsocketTtyBoots system         5         RUNNABLE 0.0       0.000     0:0.000   false     true
19   arthas-shell-server           system         5         TIMED_WA 0.0       0.000     0:0.000   false     true
20   arthas-session-manager        system         5         TIMED_WA 0.0       0.000     0:0.000   false     true
21   arthas-UserStat               system         5         WAITING  0.0       0.000     0:0.000   false     true
23   arthas-NettyHttpTelnetBootstr system         5         RUNNABLE 0.0       0.000     0:0.375   false     true
24   arthas-command-execute        system         5         RUNNABLE 0.0       0.000     0:0.109   false     true
1    main                          main           5         TIMED_WA 0.0       0.000     0:0.437   false     false
6    Monitor Ctrl-Break            main           5         RUNNABLE 0.0       0.000     0:0.062   false     true
-1   C2 CompilerThread2            -              -1        -        0.0       0.000     0:0.437   false     true
-1   GC task thread#8 (ParallelGC) -              -1        -        0.0       0.000     0:0.046   false     true
-1   GC task thread#7 (ParallelGC) -              -1        -        0.0       0.000     0:0.031   false     true
-1   GC task thread#6 (ParallelGC) -              -1        -        0.0       0.000     0:0.046   false     true
-1   VM Periodic Task Thread       -              -1        -        0.0       0.000     0:0.000   false     true
-1   GC task thread#0 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   C2 CompilerThread0            -              -1        -        0.0       0.000     0:0.484   false     true
-1   Service Thread                -              -1        -        0.0       0.000     0:0.000   false     true
-1   C2 CompilerThread1            -              -1        -        0.0       0.000     0:0.546   false     true
-1   GC task thread#9 (ParallelGC) -              -1        -        0.0       0.000     0:0.015   false     true
-1   GC task thread#1 (ParallelGC) -              -1        -        0.0       0.000     0:0.031   false     true
-1   C1 CompilerThread3            -              -1        -        0.0       0.000     0:1.171   false     true
[arthas@18544]$ thread -n 3 -i 1000
"Reference Handler" Id=2 cpuUsage=0.0% deltaTime=0ms time=15ms WAITING on java.lang.ref.Reference$Lock@1e129935at java.lang.Object.wait(Native Method)-  waiting on java.lang.ref.Reference$Lock@1e129935at java.lang.Object.wait(Object.java:502)at java.lang.ref.Reference.tryHandlePending(Reference.java:191)at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)"Finalizer" Id=3 cpuUsage=0.0% deltaTime=0ms time=15ms WAITING on java.lang.ref.ReferenceQueue$Lock@7dadc120at java.lang.Object.wait(Native Method)-  waiting on java.lang.ref.ReferenceQueue$Lock@7dadc120at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)"Signal Dispatcher" Id=4 cpuUsage=0.0% deltaTime=0ms time=0ms RUNNABLE

thread --state :查看指定状态的线程

[arthas@13048]$ thread --state BLOCKED
Threads Total: 17, NEW: 0, RUNNABLE: 9, BLOCKED: 2, WAITING: 4, TIMED_WAITING: 2, TERMINATED: 0
ID   NAME                          GROUP          PRIORITY  STATE    %CPU      DELTA_TIM TIME      INTERRUPT DAEMON
12   Thread-A                      main           5         BLOCKED  0.0       0.000     0:0.000   false     false
13   Thread-B                      main           5         BLOCKED  0.0       0.000     0:0.000   false     false

三、Arthas jvm相关指令之jvm

jvm :查看当前JVM的信息

四、Arthas jvm相关指令之sysprop

sysprop:查看当前JVM的系统属性(System Property)

[arthas@19956]$ syspropKEY                                   VALUE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------sun.desktop                           windowsawt.toolkit                           sun.awt.windows.WToolkitfile.encoding.pkg                     sun.iojava.specification.version            1.8sun.cpu.isalist                       amd64sun.jnu.encoding                      GBKjava.class.path                       C:\Program Files\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\rt.jar;D:\workspace\rocketmq-demo\target\classes;D:\mvn\repository\org\springframework\boot\spring-boot-starter-web\2.3.11.RELEASE\spring-boot-starter-web-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter\2.3.11.RELEASE\spring-boot-starter-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot\2.3.11.RELEASE\spring-boot-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot-autoconfigure\2.3.11.RELEASE\spring-boot-autoconfigure-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter-logging\2.3.11.RELEASE\spring-boot-starter-logging-2.3.11.RELEASE.jar;D:\mvn\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\mvn\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\mvn\repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;D:\mvn\repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;D:\mvn\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\mvn\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\mvn\repository\org\yaml\snakeyaml\1.26\snakeyaml-1.26.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter-json\2.3.11.RELEASE\spring-boot-starter-json-2.3.11.RELEASE.jar;D:\mvn\repository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter-tomcat\2.3.11.RELEASE\spring-boot-starter-tomcat-2.3.11.RELEASE.jar;D:\mvn\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.46\tomcat-embed-core-9.0.46.jar;D:\mvn\repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;D:\mvn\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.46\tomcat-embed-websocket-9.0.46.jar;D:\mvn\repository\org\springframework\spring-web\5.2.15.RELEASE\spring-web-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-beans\5.2.15.RELEASE\spring-beans-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-webmvc\5.2.15.RELEASE\spring-webmvc-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-aop\5.2.15.RELEASE\spring-aop-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-context\5.2.15.RELEASE\spring-context-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-expression\5.2.15.RELEASE\spring-expression-5.2.15.RELEASE.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-client\4.8.0\rocketmq-client-4.8.0.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-common\4.8.0\rocketmq-common-4.8.0.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-remoting\4.8.0\rocketmq-remoting-4.8.0.jar;D:\mvn\repository\com\alibaba\fastjson\1.2.69\fastjson-1.2.69.jar;D:\mvn\repository\io\netty\netty-all\4.1.65.Final\netty-all-4.1.65.Final.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-logging\4.8.0\rocketmq-logging-4.8.0.jar;D:\mvn\repository\io\netty\netty-tcnative-boringssl-static\2.0.39.Final\netty-tcnative-boringssl-static-2.0.39.Final.jar;D:\mvn\repository\commons-validator\commons-validator\1.6\commons-validator-1.6.jar;D:\mvn\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;D:\mvn\repository\commons-digester\commons-digester\1.8.1\commons-digester-1.8.1.jar;D:\mvn\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\mvn\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\mvn\repository\org\apache\commons\commons-lang3\3.9\commons-lang3-3.9.jar;D:\mvn\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\mvn\repository\org\springframework\spring-core\5.2.15.RELEASE\spring-core-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-jcl\5.2.15.RELEASE\spring-jcl-5.2.15.RELEASE.jar;D:\mvn\repository\org\assertj\assertj-core\3.16.1\assertj-core-3.16.1.jar;D:\development\idea201803\IntelliJ IDEA 2018.3.6\lib\idea_rt.jarjava.vm.vendor                        Oracle Corporationsun.arch.data.model                   64user.variantjava.vendor.url                       http://java.oracle.com/user.timezone                         Asia/Shanghaivisualvm.id                           885504288085200os.name                               Windows 10java.vm.specification.version         1.8user.country                          CNsun.java.launcher                     SUN_STANDARDsun.boot.library.path                 C:\Program Files\Java\jdk1.8.0_291\jre\binsun.java.command                      com.wsh.GCTestsun.cpu.endian                        littleuser.home                             C:\Users\WSHuser.language                         zhjava.specification.vendor             Oracle Corporationjava.home                             C:\Program Files\Java\jdk1.8.0_291\jrefile.separator                        \line.separatorjava.vm.specification.vendor          Oracle Corporationjava.specification.name               Java Platform API Specificationjava.awt.graphicsenv                  sun.awt.Win32GraphicsEnvironmentsun.boot.class.path                   C:\Program Files\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_291\jre\classesuser.scriptsun.management.compiler               HotSpot 64-Bit Tiered Compilersjava.runtime.version                  1.8.0_291-b10user.name                             weishihuaipath.separator                        ;os.version                            10.0java.endorsed.dirs                    C:\Program Files\Java\jdk1.8.0_291\jre\lib\endorsedjava.runtime.name                     Java(TM) SE Runtime Environmentfile.encoding                         UTF-8sun.nio.ch.bugLeveljava.vm.name                          Java HotSpot(TM) 64-Bit Server VMjava.vendor.url.bug                   http://bugreport.sun.com/bugreport/java.io.tmpdir                        C:\Users\WSH\AppData\Local\Temp\java.version                          1.8.0_291user.dir                              D:\workspace\rocketmq-demoos.arch                               amd64java.vm.specification.name            Java Virtual Machine Specificationjava.awt.printerjob                   sun.awt.windows.WPrinterJobsun.os.patch.leveljava.library.path                     C:\Program Files\Java\jdk1.8.0_291\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Java\jdk1.8.0_291\bin;D:\development\apache-maven-3.5.4\bin;D:\development\git\Git\cmd;D:\development\xftp\;D:\development\xshell\;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\WSH\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip\;D:\development\idea201803\IntelliJ IDEA 2018.3.6\bin;;D:\development\Fiddler;.java.vm.info                          mixed modejava.vendor                           Oracle Corporationjava.vm.version                       25.291-b10java.ext.dirs                         C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext;C:\Windows\Sun\Java\lib\extsun.io.unicode.encoding               UnicodeLittlejava.class.version                    52.0

sysprop 参数名称:查看单个属性

[arthas@16288]$ sysprop java.versionKEY                     VALUE
-----------------------------------------------------------------------------------------------------------------------java.version            1.8.0_291

五、Arthas jvm相关指令之sysenv

sysenv:查看当前JVM的环境属性(System Environment Variables)

//查看所有环境变量
[arthas@19956]$ sysenvKEY                                   VALUE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------USERDOMAIN_ROAMINGPROFILE             GZHQLAPTOP0839LOCALAPPDATA                          C:\Users\WSH\AppData\LocalPROCESSOR_LEVEL                       23IntelliJ IDEA                         D:\development\idea201803\IntelliJ IDEA 2018.3.6\bin;USERDOMAIN                            GZHQLAPTOP0839FPS_BROWSER_APP_PROFILE_STRING        Internet ExplorerLOGONSERVER                           \\GZHQLAPTOP0839JAVA_HOME                             C:\Program Files\Java\jdk1.8.0_291SESSIONNAME                           ConsoleALLUSERSPROFILE                       C:\ProgramDataPROCESSOR_ARCHITECTURE                AMD64PSModulePath                          C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\ModulesSystemDrive                           C:MAVEN_HOME                            D:\development\apache-maven-3.5.4OneDrive                              C:\Users\Administrator\OneDriveAPPDATA                               C:\Users\WSH\AppData\RoamingROCKETMQ_HOME                         D:\development\rocketmq\rocketmq-all-4.8.0-bin-releaseUSERNAME                              weishihuaiProgramFiles(x86)                     C:\Program Files (x86)CommonProgramFiles                    C:\Program Files\Common FilesPath                                  C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Java\jdk1.8.0_291\bin;D:\development\apache-maven-3.5.4\bin;D:\development\git\Git\cmd;D:\development\xftp\;D:\development\xshell\;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\WSH\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip\;D:\development\idea201803\IntelliJ IDEA 2018.3.6\bin;;D:\development\FiddlerFPS_BROWSER_USER_PROFILE_STRING       DefaultPATHEXT                               .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSCDriverData                            C:\Windows\System32\Drivers\DriverDataOS                                    Windows_NTCOMPUTERNAME                          GZHQLAPTOP0839PROCESSOR_REVISION                    6001CLASSPATH                             .;C:\Program Files\Java\jdk1.8.0_291\lib;C:\Program Files\Java\jdk1.8.0_291\lib\tools.jarCommonProgramW6432                    C:\Program Files\Common FilesComSpec                               C:\Windows\system32\cmd.exeProgramData                           C:\ProgramDataProgramW6432                          C:\Program FilesWXDRIVE_START_ARGS                    --wxdrive-setting=0 --disable-gpu --disable-software-rasterizer --enable-features=NetworkServiceInProcessHOMEPATH                              \Users\WSHSystemRoot                            C:\WindowsTEMP                                  C:\Users\WSH\AppData\Local\TempHOMEDRIVE                             C:PROCESSOR_IDENTIFIER                  AMD64 Family 23 Model 96 Stepping 1, AuthenticAMDUSERPROFILE                           C:\Users\WSHTMP                                   C:\Users\WSH\AppData\Local\TempCommonProgramFiles(x86)               C:\Program Files (x86)\Common FilesProgramFiles                          C:\Program FilesPUBLIC                                C:\Users\PublicNUMBER_OF_PROCESSORS                  12windir                                C:\Windows=::                                   ::\

sysenv 查看单个环境变量

[arthas@16288]$ sysenv JAVA_HOMEKEY                     VALUE
-----------------------------------------------------------------------------------------------------------------------JAVA_HOME               C:\Program Files\Java\jdk1.8.0_291

六、Arthas jvm相关指令之vmoption

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

//查看所有的option
[arthas@20044]$ vmoptionKEY                                            VALUE                                          ORIGIN                                         WRITEABLE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------HeapDumpBeforeFullGC                           false                                          DEFAULT                                        trueHeapDumpAfterFullGC                            false                                          DEFAULT                                        trueHeapDumpOnOutOfMemoryError                     true                                           VM_CREATION                                    trueHeapDumpPath                                   d:/dumps/                                      VM_CREATION                                    trueCMSAbortablePrecleanWaitMillis                 100                                            DEFAULT                                        trueCMSWaitDuration                                2000                                           DEFAULT                                        trueCMSTriggerInterval                             -1                                             DEFAULT                                        truePrintGC                                        false                                          DEFAULT                                        truePrintGCDetails                                 false                                          DEFAULT                                        truePrintGCDateStamps                              false                                          DEFAULT                                        truePrintGCTimeStamps                              false                                          DEFAULT                                        truePrintGCID                                      false                                          DEFAULT                                        truePrintClassHistogramBeforeFullGC                false                                          DEFAULT                                        truePrintClassHistogramAfterFullGC                 false                                          DEFAULT                                        truePrintClassHistogram                            false                                          DEFAULT                                        trueMinHeapFreeRatio                               0                                              DEFAULT                                        trueMaxHeapFreeRatio                               100                                            DEFAULT                                        truePrintConcurrentLocks                           false                                          DEFAULT                                        trueUnlockCommercialFeatures                       false        

vmoption:查看指定的option

[arthas@16288]$ vmoption PrintGCKEY                           VALUE                         ORIGIN                       WRITEABLE
-----------------------------------------------------------------------------------------------------------------------PrintGC                       false                         DEFAULT    

七、Arthas jvm相关指令之其他指令

  • perfcounter :查看当前JVM的 Perf Counter信息,参考perfcounter — Arthas 3.5.4 文档
  • logger :查看logger信息,更新logger level,参考logger — Arthas 3.5.4 文档
  • getstatic :方便的查看类的静态属性。使用方法为getstatic class_name field_name,使用参考getstatic — Arthas 3.5.4 文档
  • ognl :执行ognl表达式,使用参考ognl — Arthas 3.5.4 文档
  • mbean :查看 Mbean 的信息,这个命令可以便捷的查看或监控 Mbean 的属性信息。更多使用参考mbean — Arthas 3.5.4 文档
//列出所有 Mbean 的名称
[arthas@20044]$ mbean
java.lang:type=MemoryPool,name=Metaspace
java.lang:type=MemoryPool,name=PS Old Gen
java.lang:type=GarbageCollector,name=PS Scavenge
java.lang:type=MemoryPool,name=PS Eden Space
JMImplementation:type=MBeanServerDelegate
java.lang:type=Runtime
java.lang:type=Threading
java.lang:type=OperatingSystem
java.lang:type=MemoryPool,name=Code Cache
java.nio:type=BufferPool,name=direct
java.lang:type=Compilation
java.lang:type=MemoryManager,name=CodeCacheManager
java.lang:type=MemoryPool,name=Compressed Class Space
java.lang:type=Memory
java.nio:type=BufferPool,name=mapped
java.util.logging:type=Logging
java.lang:type=MemoryPool,name=PS Survivor Space
java.lang:type=ClassLoading
java.lang:type=MemoryManager,name=Metaspace Manager
com.sun.management:type=DiagnosticCommand
java.lang:type=GarbageCollector,name=PS MarkSweep
com.sun.management:type=HotSpotDiagnostic
  •  heapdump :dump java heap,类似jmap命令的 heap dump功能
//dump到指定文件[arthas@19956]$ heapdump d:/test2.hprof
Dumping heap to d:/test2.hprof ...
Heap dump file created

只dump live对象:

[arthas@58205]$ heapdump --live /tmp/dump.hprof
Dumping heap to /tmp/dump.hprof...
Heap dump file created
  • vmtool:从jvm里查询对象,执行forceGc
vmtool --action forceGc

JVM监控及诊断工具GUI篇之Arthas(二):jvm相关指令相关推荐

  1. 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】

    文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...

  2. JVM监控及诊断工具-GUI篇

    3.JVM监控及诊断工具-GUI篇 一.工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限: 1.无法获取方法级别的分析数据,如方法间的调用关系.各方 ...

  3. 20.JVM监控以及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 20. JVM监控及诊断工具-GUI篇 20.1. 工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相 ...

  4. 干货满满【JVM监控及诊断工具-GUI篇】

    [JVM监控及诊断工具-GUI篇] 3.1. 工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限: 1.无法获取方法级别的分析数据,如方法间的调用关系 ...

  5. JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇

    二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...

  6. 第24章 JVM监控及诊断工具-GUI篇

    第24章 JVM监控及诊断工具-GUI篇 来自尚硅谷宋红康老师讲解的JVM:bilibili链接 1 工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局 ...

  7. 15、JVM监控及诊断工具-GUI篇

    文章目录 第1章.工具概述 第2章.jConsole 1.基本概述 2.启动 3.三种连接方式 [1]Local [2]Remote [3]Advanced 4.主要作用 第3章.Visual VM ...

  8. JVM(二十二) -- 性能监控与调优(三) -- JVM监控及诊断工具--GUI篇

    1.工具概述 1.1 图形化总和诊断工具: JDK自带的工具 第三方工具 2. jConsole(了解) 从java5开始,在JDK中自带的java监控和管理控制台. 用于对JVM中内存.线程和类等的 ...

  9. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  10. Day357358359360.JVM监控及诊断工具-GUI -JVM

    JVM监控及诊断工具-GUI 实际中,你下面有1-2款会用即可 一.工具概述 二.JConsole 了解 1.基本概述 2.启动 在jdk安装目录中找到jconsole.exe,双击该可执行文件就可以 ...

最新文章

  1. java中二维数组求最大值代码。。。。。。不懂呀
  2. 怎么样清除bitcoin-qt的交易记录
  3. AI:IPPR的数学表示-CNN方法
  4. 设计模式-Builder Pattern
  5. 最小二乘法和极大似然估计
  6. 安全隐患分析和基本系统结构信息的收集
  7. MyEclipse配色
  8. Python--随机森林模型
  9. 万能工具,完全免费实现各种超实用功能
  10. AI人机对战五子棋游戏【Python(pygame)+AI】并实现软件输出
  11. 软件测试睡眠原理,测一测你的睡眠质量
  12. 三维空间曲面的切平面以及在某一点上的切线,法线
  13. 学会它,能让你工作学习效率提升10倍!
  14. Coherence X for mac(网站转换为mac应用的工具)
  15. 阿尔茨海默病与正常衰老中的脑萎缩研究进展
  16. Composing Photos Like a Photographer_2021_CVPR论文笔记
  17. 20211219 小信号建模——状态空间法
  18. 中国欲量产AI人才,本科招生爆发后如何培养?
  19. jenkins持续集成与持续交付
  20. html里面有一个控制文字滚动的标签marquee,比较有用。

热门文章

  1. steam服务器维护6月28,绝地求生6月28日维护更新公告 绝地求生6月28日更新内容汇总...
  2. 变速恒频风电机组的优缺点_风电消防安全解决方案解析
  3. C/C++[Shortest Distance]
  4. Jupyter Notebook 添加说明表格Cell
  5. 数据集:不同地区居民消费数据
  6. mysql 备份任务_设置mysql 定时备份任务
  7. PaddleSeg用于人像分割
  8. 591. 标签验证器
  9. MATLAB模式识别基本操作函数解析
  10. apt-get install的默认安装路径是什么