返回

Arthas常用命令:jvm、sysprop、sysenv、vmoption、getstatic、putstatic、dump

后端

Arthas是一款开源Java诊断工具,集成了多种强大的功能,可以帮助您快速诊断和解决Java应用程序中的问题。在上一篇文章中,我们介绍了Arthas的基础用法和一些常用的命令,如thread、stack、monitor等。

在本文中,我们将继续介绍Arthas中一些常用的命令,包括:jvm、sysprop、sysenv、vmoption、getstatic、putstatic、dump等。这些命令可以帮助您更深入地了解Java应用程序的运行时状态,并对应用程序进行动态调整和优化。

1. jvm

jvm命令用于查看当前Java虚拟机的相关信息,包括版本、启动参数、内存使用情况等。

使用示例:

Arthas> jvm

输出示例:

# JVM Information

Version: 1.8.0_202
VM: Java HotSpot(TM) 64-Bit Server VM (25.202-b08)
VM Args: 
  -Xms1024m 
  -Xmx1024m 
  -XX:MaxPermSize=256m 
  -XX:+UseCompressedOops 
  -XX:+UseParNewGC 
  -XX:+UseConcMarkSweepGC 
  -XX:CMSInitiatingOccupancyFraction=70 
  -XX:+UseCMSInitiatingOccupancyOnly 
  -XX:+AlwaysPreTouch 
  -XX:+HeapDumpOnOutOfMemoryError 
  -XX:HeapDumpPath=/tmp/heapdump.hprof

2. sysprop

sysprop命令用于查看和修改系统属性。

使用示例:

Arthas> sysprop

输出示例:

# System Properties

file.encoding=UTF-8
java.class.path=/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/lib/rt.jar:/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/lib/sunrsasign.jar:/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/lib/jsse.jar:/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/lib/jce.jar:/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/lib/charsets.jar:/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/lib/jfr.jar:/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/classes
java.home=/Users/alibaba/soft/app/java/jdk1.8.0_202/jre
java.io.tmpdir=/var/folders/0m/2yl3311x17x6_vpgnrqq765r0000gn/T/
java.library.path=/Users/alibaba/soft/app/java/jdk1.8.0_202/jre/lib/server:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.8.0_202-b08
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=1.8
java.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
java.version=1.8.0_202
line.separator=

3. sysenv

sysenv命令用于查看和修改环境变量。

使用示例:

Arthas> sysenv

输出示例:

# System Environment

TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TMPDIR=/var/folders/0m/2yl3311x17x6_vpgnrqq765r0000gn/T/
Apple_PubSub_Socket_Render=/tmp/com.apple.launchd.rogm75XRldR
TERM=xterm-256color
USER=alibaba
COMMAND_MODE=unix2003
PWD=/Users/alibaba/Documents/workspace/arthas-demo
SHLVL=1
HOME=/Users/alibaba
Apple_Ubiquity_Message=/tmp/com.apple.launchd.3oI4YTcLmi/Render

4. vmoption

vmoption命令用于查看和修改VM诊断相关参数。

使用示例:

Arthas> vmoption

输出示例:

# VM Options

UnlockDiagnosticVMOptions=true
UseSerialGC=false
TieredCompilation=true
ReservedCodeCacheSize=240
UseLargePagesIndividualAllocation=true
DisableAttachMechanism=false
PrintGC=false
PrintGCDetails=false
PrintGCDateStamps=false
PrintGCTimeStamps=false
PrintHeapAtGC=false
PrintTenuringDistribution=false
PrintGCApplicationStoppedTime=false
PrintGCApplicationConcurrentTime=false
UseTLAB=true
ResizeTLAB=false
TLABSize=8192
MaxTLABSize=65536
PrintSafepointStatistics=false
SafepointTimeout=1000
MaxSafepointOverheadPercentage=10
UseParNewGC=true
GCTimeLimit=50
UseConcMarkSweepGC=true
UseCMSInitiatingOccupancyOnly=true
CMSInitiatingOccupancyFraction=70
ParallelGCThreads=8
ConcGCThreads=8
CMSMaxAbortablePrecleanTime=5000
CMSWaitDuration=1000
UseCMSCompactWhenTlabOverflow=false
UseCMSPermGenSweepingEnabled=true
UseCMSClassUnloadingEnabled=false
UseCMSHeapInspectConcurrent=false
XX:+HeapDumpOnOutOfMemoryError
HeapDumpPath=/tmp/heapdump.hprof

5. getstatic

getstatic命令用于查看类的静态属性值。

使用示例:

Arthas> getstatic java.lang.System out

输出示例:

# Static Field: java.lang.System.out

java.io.PrintStream@248e7f09

6. putstatic

putstatic命令用于修改类的静态属性值。

使用示例:

Arthas> putstatic java.lang.System out null

7. dump

dump命令用于转储对象到本地文件。

使用示例:

Arthas> dump -o student.txt java.lang.String

输出示例:

Object dump successfully! File path: student.txt

以上就是Arthas中一些常用的命令。这些命令可以帮助您更深入地了解Java应用程序的运行时状态,并对应用程序进行动态调整和优化。

希望这篇文章对您有所帮助!如果您有其他问题,欢迎随时提问。