1. dashboard—当前系统的实时数据面板
第二章节已说,这里不再赘述
2. thread—查看当前 JVM 的线程堆栈信息
第二章节已说,这里不再赘述
3. jvm—查看当前 JVM 的信息
jvm
4. sysprop—查看和修改JVM的系统属性
4.1 查看全部
$ sysprop KEY VALUE ------------------------------------------------------------------------------------------------------------------------------------- java.runtime.name Java(TM) SE Runtime Environment sun.boot.library.path /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib java.vm.version 25.51-b03 user.country.format CN gopherProxySet false java.vm.vendor Oracle Corporation java.vendor.url http://java.oracle.com/ path.separator : java.vm.name Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg sun.io user.country US sun.java.launcher SUN_STANDARD sun.os.patch.level unknown java.vm.specification.name Java Virtual Machine Specification user.dir /private/var/tmp java.runtime.version 1.8.0_51-b16 java.awt.graphicsenv sun.awt.CGraphicsEnvironment java.endorsed.dirs /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/endors ed os.arch x86_64 java.io.tmpdir /var/folders/2c/tbxwzs4s4sbcvh7frbcc7n000000gn/T/ line.separator java.vm.specification.vendor Oracle Corporation os.name Mac OS X sun.jnu.encoding UTF-8 java.library.path /Users/wangtao/Library/Java/Extensions:/Library/Java/Extensions:/Network/Libra ry/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. sun.nio.ch.bugLevel java.specification.name Java Platform API Specification java.class.version 52.0 sun.management.compiler HotSpot 64-Bit Tiered Compilers os.version 10.12.6 user.home /Users/wangtao user.timezone Asia/Shanghai java.awt.printerjob sun.lwawt.macosx.CPrinterJob file.encoding UTF-8 java.specification.version 1.8 user.name wangtao java.class.path . java.vm.specification.version 1.8 sun.arch.data.model 64 java.home /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre sun.java.command Test java.specification.vendor Oracle Corporation user.language en awt.toolkit sun.lwawt.macosx.LWCToolkit java.vm.info mixed mode java.version 1.8.0_51 java.ext.dirs /Users/wangtao/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1. 8.0_51.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library /Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java sun.boot.class.path /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/resour ces.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/li b/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/l ib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/H ome/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Content s/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Conte nts/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jd k/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51. jdk/Contents/Home/jre/classes java.vendor Oracle Corporation file.separator / java.vendor.url.bug http://bugreport.sun.com/bugreport/ sun.cpu.endian little sun.io.unicode.encoding UnicodeBig sun.cpu.isalist
4.2 查看指定属性
$ sysprop java.version
4.3 修改单个属性
-- 查看 $ sysprop user.country user.country=US -- 修改 $ sysprop user.country CN Successfully changed the system property. user.country=CN
5. sysenv—查看JVM的环境变量
5.1 查看全部环境变量
sysenv
5.2 查看指定环境变量
sysenv 环境变量KEY 如:sysenv JAVA_HOME
6. vmoption—查看和修改JVM里诊断相关的option
6.1 查看全部option
vmoption
6.2 查看指定option
vmoption key 如:vmoption MaxHeapFreeRatio
6.3 更新指定option
[arthas@56963]$ vmoption PrintGCDetails true Successfully updated the vm option. PrintGCDetails=true
7. perfcounter—查看当前 JVM 的Perf Counter信息使用参考
$ perfcounter java.ci.totalTime 2325637411 java.cls.loadedClasses 3403 java.cls.sharedLoadedClasses 0 java.cls.sharedUnloadedClasses 0 java.cls.unloadedClasses 0 java.property.java.version 11.0.4 java.property.java.vm.info mixed mode java.property.java.vm.name OpenJDK 64-Bit Server VM ...
可以用-d参数打印更多信息:
$ perfcounter -d Name Variability Units Value --------------------------------------------------------------------------------- java.ci.totalTime Monotonic Ticks 3242526906 java.cls.loadedClasses Monotonic Events 3404 java.cls.sharedLoadedClasses Monotonic Events 0 java.cls.sharedUnloadedClasses Monotonic Events 0 java.cls.unloadedClasses Monotonic Events 0
如果没有打印出信息,应用在启动时,加下面的参数:
--add-opens java.base/jdk.internal.perf=ALL-UNNAMED --add-exports java.base/jdk.internal.perf=ALL-UNNAMED
8. logger—查看和修改logger
8.1 查看所有logger信息
[arthas@2062]$ logger name ROOT class ch.qos.logback.classic.Logger classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 level INFO effectiveLevel INFO additivity true codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar appenders name CONSOLE class ch.qos.logback.core.ConsoleAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 target System.out name APPLICATION class ch.qos.logback.core.rolling.RollingFileAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 file app.log name ASYNC class ch.qos.logback.classic.AsyncAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 appenderRef [APPLICATION]
从appenders的信息里,可以看到
CONSOLElogger的target是System.outAPPLICATIONlogger是RollingFileAppender,它的file是app.logASYNC它的appenderRef是APPLICATION,即异步输出到文件里
8.2 查看指定logger
[arthas@2062]$ logger -n org.springframework.web name org.springframework.web class ch.qos.logback.classic.Logger classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 level null effectiveLevel INFO additivity true codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
8.3 查看指定classloader的logger
其中,classloader为上述8.1或8.2中返回的
[arthas@2062]$ logger -c 2a139a55 name ROOT class ch.qos.logback.classic.Logger classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 level DEBUG effectiveLevel DEBUG additivity true codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar appenders name CONSOLE class ch.qos.logback.core.ConsoleAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 target System.out name APPLICATION class ch.qos.logback.core.rolling.RollingFileAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 file app.log name ASYNC class ch.qos.logback.classic.AsyncAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 appenderRef [APPLICATION]
8.4 更新全局logger level
[arthas@2062]$ logger --name ROOT --level debug update logger level success.
8.5 更新指定classloader logger level
默认情况下,logger命令会在SystemClassloader下执行,如果应用是传统的war应用,或者spring boot fat jar启动的应用,那么需要指定classloader。
可以先用 sc -d yourClassName 来查看具体的 classloader hashcode,然后在更新level时指定classloader:
[arthas@2062]$ logger -c 2a139a55 --name ROOT --level debug
8.6 查看没有appender的logger
默认情况下,logger命令只打印有appender的logger的信息。如果想查看没有appender的logger的信息,可以加上参数--include-no-appender。
注意,通常输出结果会很长
[arthas@2062]$ logger --include-no-appender name ROOT class ch.qos.logback.classic.Logger classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 level DEBUG effectiveLevel DEBUG additivity true codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar appenders name CONSOLE class ch.qos.logback.core.ConsoleAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 target System.out name APPLICATION class ch.qos.logback.core.rolling.RollingFileAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 file app.log name ASYNC class ch.qos.logback.classic.AsyncAppender classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 appenderRef [APPLICATION] name com class ch.qos.logback.classic.Logger classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 level null effectiveLevel DEBUG additivity true codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar name com.alibaba class ch.qos.logback.classic.Logger classLoader sun.misc.Launcher$AppClassLoader@2a139a55 classLoaderHash 2a139a55 level null effectiveLevel DEBUG additivity true codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar ...
9. getstatic—查看类的静态属性
有需再更
10. ognl—执行ognl表达式
有需再更
11. mbean—查看 Mbean 的信息
有需再更