返回
Arthas常用命令:jvm、sysprop、sysenv、vmoption、getstatic、putstatic、dump
后端
2023-10-28 06:48:01
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应用程序的运行时状态,并对应用程序进行动态调整和优化。
希望这篇文章对您有所帮助!如果您有其他问题,欢迎随时提问。