百度如何网站,自己怎么做网站链接,sem是什么品牌,重庆建筑网站常用命令查找文档站点#xff1a;https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html -XX:PrintFlagsInitial 输出所有参数的名称和默认值#xff0c;默认不包括Diagnostic和Experimental的参数。可以配合 -XX:UnlockDiagnosticVMOptions和-XX:UnlockEx… 常用命令查找文档站点https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html -XX:PrintFlagsInitial 输出所有参数的名称和默认值默认不包括Diagnostic和Experimental的参数。可以配合 -XX:UnlockDiagnosticVMOptions和-XX:UnlockExperimentalVMOptions使用 注意这里列举出来的所有参数值大体分为两类。一类是 “” 的表示默认值一类是 “ : ” 的表示是被用户或者JVM修改后的值。
JPS 命令
查看使用格式
jps -help
usage: jps [-help]jps [-q] [-mlvV] [hostid]Definitions:hostid: hostname[:port]1、查看java进程pid
$ jps -q
28680
23789
236512、查看 main 方法的参数
特别注意在嵌入式jvm上可能是null
$ jps -m
28715 Jps -m
23789 BossMain
23651 Resin -socketwait 32768 -stdout /data/aoxj/resin/log/stdout.log -stderr /data/aoxj/resin/log/stderr.log3、查看Java进程完整包名
# -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
$ jps -l
28729 sun.tools.jps.Jps
23789 com.asiainfo.aimc.bossbi.BossMain
23651 com.caucho.server.resin.Resin4、查看传递给JVM的参数
$ jps -v
23789 BossMain
28802 Jps -Denv.class.path/data/aoxj/bossbi/twsecurity/java/trustwork140.jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmcc.jar:/data/aoxj/jdk15/lib/rt.jar:/data/aoxj/jdk15/lib/tools.jar -Dapplication.home/data/aoxj/jdk15 -Xms8m
23651 Resin -Xss1m -Dresin.home/data/aoxj/resin -Dserver.root/data/aoxj/resin -Djava.util.logging.managercom.caucho.log.LogManagerImpl -Djavax.management.builder.initialcom.caucho.jmx.MBeanServerBuilderImplJinfo 命令 jinfo 是 JDK 自带的命令可以用来查看正在运行的 java 应用程序的扩展参数包括Java System属性和JVM命令行参数也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息。基本语法是jinfo [ option ] pid
Option
选项选项说明no option输出全部的参数和系统属性-flag name输出对应名称的参数-flag [/-] name开启或者关闭对应名称的参数只有被标记为 manageable 的参数才可以被动态修改-flag namevalue设定对应名称的参数-flags输出全部的参数-sysprops输出系统属性 1、jinfo -flags pid
#输入
jinfo -flags 7663#输出
Attaching to process ID 7663, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13
Non-default VM flags: -XX:CICompilerCount4 -XX:InitialHeapSize268435456 -XX:MaxHeapSize4294967296 -XX:MaxNewSize1431306240 -XX:MinHeapDeltaBytes524288 -XX:NewSize89128960 -XX:OldSize179306496 -XX:UseCompressedClassPointers -XX:UseCompressedOops -XX:UseFastUnorderedTimeStamps -XX:UseParallelGC
Command line: -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar49834:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encodingUTF-82、jinfo -flag pid
其中name 不包含上图的前缀 -XX: 等不是 jinfo -flag -XX:NewSize 7663而是 jinfo -flag NewSize 7663不包含 -XX: 。
#输入
jinfo -flag NewSize 7663#输出
-XX:NewSize89128960
3、jinfo -flag [|-] pid
用于打开或关闭指定的参数
4、jinfo -sysprops pid
打印当前java进程中设定的系统环境参数
#输入
jinfo -sysprops 7663#输出
Attaching to process ID 7663, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13
java.runtime.name Java(TM) SE Runtime Environment
java.vm.version 25.121-b13
sun.boot.library.path /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib
gopherProxySet false
java.vendor.url http://java.oracle.com/
java.vm.vendor Oracle Corporation
path.separator :
file.encoding.pkg sun.io
java.vm.name Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level unknown
sun.java.launcher SUN_STANDARD
user.country CN
user.dir /Users/davis/workspace/intellij/cw-javaagent-demo
java.vm.specification.name Java Virtual Machine Specification
java.runtime.version 1.8.0_121-b13
java.awt.graphicsenv sun.awt.CGraphicsEnvironment
os.arch x86_64
java.endorsed.dirs /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/endorsed
line.separator java.io.tmpdir /var/folders/5n/6g464jd97r13x39t5w69ybfr0000gn/T/
java.vm.specification.vendor Oracle Corporation
os.name Mac OS X
sun.jnu.encoding UTF-8
java.library.path /Users/davis/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
java.specification.name Java Platform API Specification
java.class.version 52.0
sun.management.compiler HotSpot 64-Bit Tiered Compilers
os.version 10.15.5
http.nonProxyHosts local|*.local|169.254/16|*.169.254/16
user.home /Users/davis
user.timezone Asia/Shanghai
java.awt.printerjob sun.lwawt.macosx.CPrinterJob
file.encoding UTF-8
java.specification.version 1.8
user.name davis
java.class.path /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/tools.jar:/Users/davis/workspace/intellij/cw-javaagent-demo/target/classes:/Users/davis/maven/net/sourceforge/jtds/jtds/1.2.6/jtds-1.2.6.jar:/Users/davis/maven/jstl/jstl/1.2/jstl-1.2.jar:/Users/davis/maven/taglibs/standard/1.1.2/standard-1.1.2.jar:/Users/davis/maven/org/mybatis/mybatis/3.2.8/mybatis-3.2.8.jar:/Users/davis/maven/org/mybatis/mybatis-spring/1.2.2/mybatis-spring-1.2.2.jar:/Users/davis/maven/redis/clients/jedis/2.5.2/jedis-2.5.2.jar:/Users/davis/maven/org/apache/commons/commons-pool2/2.0/commons-pool2-2.0.jar:/Users/davis/maven/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar:/Users/davis/maven/org/springframework/spring-aop/4.1.1.RELEASE/spring-aop-4.1.1.RELEASE.jar:/Users/davis/maven/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/davis/maven/org/springframework/spring-aspects/4.1.1.RELEASE/spring-aspects-4.1.1.RELEASE.jar:/Users/davis/maven/org/aspectj/aspectjweaver/1.8.2/aspectjweaver-1.8.2.jar:/Users/davis/maven/org/springframework/spring-beans/4.1.1.RELEASE/spring-beans-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-context/4.1.1.RELEASE/spring-context-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-context-support/4.1.1.RELEASE/spring-context-support-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-core/4.1.1.RELEASE/spring-core-4.1.1.RELEASE.jar:/Users/davis/maven/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/Users/davis/maven/org/springframework/spring-expression/4.1.1.RELEASE/spring-expression-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-instrument/4.1.1.RELEASE/spring-instrument-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-instrument-tomcat/4.1.1.RELEASE/spring-instrument-tomcat-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-jdbc/4.1.1.RELEASE/spring-jdbc-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-jms/4.1.1.RELEASE/spring-jms-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-messaging/4.1.1.RELEASE/spring-messaging-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-orm/4.1.1.RELEASE/spring-orm-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-oxm/4.1.1.RELEASE/spring-oxm-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-test/4.1.1.RELEASE/spring-test-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-tx/4.1.1.RELEASE/spring-tx-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-web/4.1.1.RELEASE/spring-web-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-webmvc/4.1.1.RELEASE/spring-webmvc-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-webmvc-portlet/4.1.1.RELEASE/spring-webmvc-portlet-4.1.1.RELEASE.jar:/Users/davis/maven/org/springframework/spring-websocket/4.1.1.RELEASE/spring-websocket-4.1.1.RELEASE.jar:/Users/davis/maven/commons-fileupload/commons-fileupload/1.3.1/commons-fileupload-1.3.1.jar:/Users/davis/maven/commons-io/commons-io/2.2/commons-io-2.2.jar:/Users/davis/maven/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar:/Users/davis/maven/commons-pool/commons-pool/1.4/commons-pool-1.4.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar
java.vm.specification.version 1.8
sun.arch.data.model 64
sun.java.command com.cw.tsb.jvm.JVMTest
java.home /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre
user.language zh
java.specification.vendor Oracle Corporation
awt.toolkit sun.lwawt.macosx.LWCToolkit
java.vm.info mixed mode
java.version 1.8.0_121
java.ext.dirs /Users/davis/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.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_121.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/classes
java.vendor Oracle Corporation
file.separator /
java.vendor.url.bug http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding UnicodeBig
sun.cpu.endian little
socksNonProxyHosts local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts local|*.local|169.254/16|*.169.254/16
sun.cpu.isalist Jstack 命令
Usage:jstack [-l] pid(to connect to running process)jstack -F [-m] [-l] pid(to connect to a hung process)jstack [-m] [-l] executable core(to connect to a core file)
Options:-F 强制打印线程栈信息在jstack pid命令没有响应的时候添加该选项可以实现强制打印-m (mix)混合模式可以打印 Java 栈和本地方法栈-l (long listing)长列表模式. 额外打印关于锁的信息线程状态转移图 1、状态含义
知识拓展怎样了解你的线程在干嘛?
Java语言定义了6种线程池状态
New创建后尚未启动的线程处于这种状态不会出现在Dump中。RUNNABLE包括Running和Ready。线程开启start方法会进入该状态在虚拟机内执行的。Waiting无限的等待另一个线程的特定操作。Timed Waiting有时限的等待另一个线程的特定操作。阻塞Blocked在程序等待进入同步区域的时候线程将进入这种状态在等待监视器锁。结束Terminated已终止线程的线程状态线程已经结束执行。
Dump文件的线程状态一般其实就以下3种
RUNNABLE线程处于执行中BLOCKED线程被阻塞WAITING线程正在等待
2、Monitor 监视锁
Monitor的工作原理图如下 线程想要获取monitor,首先会进入Entry Set队列它是Waiting Thread线程状态是Waiting for monitor entry。当某个线程成功获取对象的monitor后,进入Owner区域它就是Active Thread。如果线程调用了wait()方法则会进入Wait Set队列它会释放monitor锁它也是Waiting Thread线程状态in Object.wait()如果其他线程调用 notify() / notifyAll() 会唤醒Wait Set中的某个线程该线程再次尝试获取monitor锁成功即进入Owner区域。
3、Dump 文件分析关注重点
runnable线程处于执行中deadlock死锁重点关注blocked线程被阻塞 重点关注Parked停止locked对象加锁waiting线程正在等待waiting to lock 等待上锁Object.wait()对象等待中waiting for monitor entry 等待获取监视器重点关注Waiting on condition等待资源重点关注最常见的情况是线程在等待网络的读写
Jmap 命令 jmapJava Virtual Machine Memory Map是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具。除此以外jmap命令还可以查看finalize执行队列、Java堆和方法区的详细信息比如空间使用率、当前使用的什么垃圾回收器、分代情况等等。 命令语法
jmap [options] pid命令参数说明
optionjmap命令的可选参数。如果没有指定这个参数jinfo命令会显示Java虚拟机进程的内存映像信息如下图 pid要打印配置信息的Java虚拟机的进程ID。 想要要获取运行的Java虚拟机进程的列表可以使用ps命令Linux系统中或tasklist命令Windows系统中如果Java虚拟机进程没有在单独的docker实例中运行可以使用jps命令。 1、- help 查看堆信息
显示Java堆的如下信息
被指定的垃圾回收算法的信息包括垃圾回收算法的名称和垃圾回收算法的详细信息。堆的配置信息可能是由命令行选项指定或者由Java虚拟机根据服务器配置选择的。堆的内存空间使用信息包括分代情况每个代的总容量、已使用内存、可使用内存。如果某一代被继续细分(例如年轻代)则包含细分的空间的内存使用信息。 2、- histo[:live] 查看堆对象统计信息 显示Java堆中对象的统计信息包括对象数量、占用内存大小(单位字节)和类的完全限定名。比如 要获得某个对象的大小可以将其总大小除以该对象类型的数量。如果指定了live参数则只计算活动的对象。比如 3、- clstats 查看类加载器统计信息
显示Java堆中元空间的类加载器的统计信息包括
class_loader当Java虚拟机运行时类加载器对象的地址classes已加载类的数量bytes该类加载器加载的所有类的元数据所占的字节数parent_loader父类加载器对象的地址如果没有显示null。alive是否存活的标识表示类加载器对象是否将被垃圾回收。type该类加载器的类名。 4、- finalizerinfo 查看等待线程 显示在F-Queue中等待Finalizer线程执行finalize方法的对象。比如 5、- dump:[live,]formatb,file 生成dump
生成Java虚拟机的堆转储快照dump文件。具体说明如下
live参数是可选的如果指定则只转储堆中的活动对象如果没有指定则转储堆中的所有对象。formatb表示以hprof二进制格式转储Java堆的内存。filefilename用于指定快照dump文件的文件名。 6、-F 强制模式
强制模式。如果指定的pid没有响应可以配合-dump或-histo一起使用。此模式下不支持live参数。比如 Jstat 命令
命令用法jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
C:\Users\Administratorjstat -help
Usage: jstat -help|-optionsjstat -option [-t] [-hlines] vmid [interval [count]]Definitions:option An option reported by the -options optionvmid Virtual Machine Identifier. A vmid takes the following form:lvmid[hostname[:port]]Where lvmid is the local vm identifier for the targetJava virtual machine, typically a process id; hostname isthe name of the host running the target Java virtual machine;and port is the port number for the rmiregistry on thetarget host. See the jvmstat documentation for a more completedescription of the Virtual Machine Identifier.lines Number of samples between header lines.interval Sampling interval. The following forms are allowed:n[ms|s]Where n is an integer and the suffix specifies the units asmilliseconds(ms) or seconds(s). The default units are ms.count Number of samples to take before terminating.-Jflag Pass flag directly to the runtime system.
option参数选项-t可以在打印的列加上Timestamp列用于显示系统运行的时间-h可以在周期性数据输出的时候指定输出多少行以后输出一次表头vmidVirtual Machine ID 进程的 pidinterval执行每次的间隔时间单位为毫秒count用于指定输出多少次记录缺省则会一直打印
option 可以从下面参数中选择
jstat -options
-class 用于查看类加载情况的统计-compiler 用于查看HotSpot中即时编译器编译情况的统计-gc 用于查看JVM中堆的垃圾收集情况的统计-gccapacity 用于查看新生代、老生代及持久代的存储容量情况-gcmetacapacity 显示metaspace的大小-gcnew 用于查看新生代垃圾收集的情况-gcnewcapacity 用于查看新生代存储容量的情况-gcold 用于查看老生代及持久代垃圾收集的情况-gcoldcapacity 用于查看老生代的容量-gcutil 显示垃圾收集信息-gccause 显示垃圾回收的相关信息通-gcutil,同时显示最后一次仅当前正在发生的垃圾收集的原因-printcompilation 输出JIT编译的方法信息
1、-class 类加载统计
[roothadoop ~]# jps #先通过jps获取到java进程号这里是一个zookeeper进程
3346 QuorumPeerMain
7063 Jps
[roothadoop ~]# jstat -class 3346 #统计JVM中加载的类的数量与size
Loaded Bytes Unloaded Bytes Time 1527 2842.7 0 0.0 1.02
Loaded:加载类的数量Bytes加载类的size单位为ByteUnloaded卸载类的数目Bytes卸载类的size单位为ByteTime加载与卸载类花费的时间
2、-compiler 编译统计
[roothadoop ~]# jstat -compiler 3346 #用于查看HotSpot中即时编译器编译情况的统计
Compiled Failed Invalid Time FailedType FailedMethod404 0 0 0.19 0
Compiled编译任务执行数量Failed编译任务执行失败数量Invalid编译任务执行失效数量Time编译任务消耗时间FailedType最后一个编译失败任务的类型FailedMethod最后一个编译失败任务所在的类及方法
3、-gc 垃圾回收统计
[roothadoop ~]# jstat -gc 3346 #用于查看JVM中堆的垃圾收集情况的统计S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
128.0 128.0 0.0 128.0 1024.0 919.8 15104.0 2042.4 8448.0 8130.4 1024.0 996.0 7 0.019 0 0.000 0.019
S0C年轻代中第一个survivor幸存区的容量 字节S1C年轻代中第二个survivor幸存区的容量 (字节)S0U年轻代中第一个survivor幸存区目前已使用空间 (字节)S1U年轻代中第二个survivor幸存区目前已使用空间 (字节)EC年轻代中Eden伊甸园的容量 (字节)EU年轻代中Eden伊甸园目前已使用空间 (字节)OCOld代的容量 (字节)OUOld代目前已使用空间 (字节)MCmetaspace(元空间)的容量 (字节)MUmetaspace(元空间)目前已使用空间 (字节)CCSC当前压缩类空间的容量 (字节)CCSU当前压缩类空间目前已使用空间 (字节)YGC从应用程序启动到采样时年轻代中gc次数YGCT从应用程序启动到采样时年轻代中gc所用时间(s)FGC从应用程序启动到采样时old代(全gc)gc次数FGCT从应用程序启动到采样时old代(全gc)gc所用时间(s)GCT从应用程序启动到采样时gc用的总时间(s)
4、-gccapacity 堆内存统计
[roothadoop ~]# jstat -gccapacity 3346 #用于查看新生代、老生代及持久代的存储容量情况NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC1280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 0
[roothadoop ~]# jstat -gccapacity -h5 3346 1000 #-h5每5行显示一次表头 1000每1秒钟显示一次单位为毫秒NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC1280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 01280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 01280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 01280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 01280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 0NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC1280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 01280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 01280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 01280.0 83264.0 1280.0 128.0 128.0 1024.0 15104.0 166592.0 15104.0 15104.0 0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 7 0
NGCMN年轻代(young)中初始化(最小)的大小(字节)NGCMX年轻代(young)的最大容量 (字节)NGC年轻代(young)中当前的容量 (字节)S0C年轻代中第一个survivor幸存区的容量 (字节)S1C年轻代中第二个survivor幸存区的容量 (字节)EC年轻代中Eden伊甸园的容量 (字节)OGCMNold代中初始化(最小)的大小 (字节)OGCMXold代的最大容量(字节)OGCold代当前新生成的容量 (字节)OCOld代的容量 (字节)MCMNmetaspace(元空间)中初始化(最小)的大小 (字节)MCMXmetaspace(元空间)的最大容量 (字节)MCmetaspace(元空间)当前新生成的容量 (字节)CCSMN最小压缩类空间大小CCSMX最大压缩类空间大小CCSC当前压缩类空间大小YGC从应用程序启动到采样时年轻代中gc次数FGC从应用程序启动到采样时old代(全gc)gc次数
5、-gcmetacapacity 元数据空间统计
[roothadoop ~]# jstat -gcmetacapacity 3346 #显示元数据空间的大小
MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1056768.0 8448.0 0.0 1048576.0 1024.0 8 0 0.000 0.020
MCMN最小元数据容量MCMX最大元数据容量MC当前元数据空间大小CCSMN最小压缩类空间大小CCSMX最大压缩类空间大小CCSC当前压缩类空间大小YGC从应用程序启动到采样时年轻代中gc次数FGC从应用程序启动到采样时old代(全gc)gc次数FGCT从应用程序启动到采样时old代(全gc)gc所用时间(s)GCT从应用程序启动到采样时gc用的总时间(s)
6、-gcnew 新生代垃圾回收统计
[roothadoop ~]# jstat -gcnew 3346 #用于查看新生代垃圾收集的情况
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
128.0 128.0 67.8 0.0 1 15 64.0 1024.0 362.2 8 0.020
S0C年轻代中第一个survivor幸存区的容量 (字节)S1C年轻代中第二个survivor幸存区的容量 (字节)S0U年轻代中第一个survivor幸存区目前已使用空间 (字节)S1U年轻代中第二个survivor幸存区目前已使用空间 (字节)TT持有次数限制MTT最大持有次数限制DSS期望的幸存区大小EC年轻代中Eden伊甸园的容量 (字节)EU年轻代中Eden伊甸园目前已使用空间 (字节)YGC从应用程序启动到采样时年轻代中gc次数YGCT从应用程序启动到采样时年轻代中gc所用时间(s)
7、-gcnewcapacity 新生代内存统计
[roothadoop ~]# jstat -gcnewcapacity 3346 #用于查看新生代存储容量的情况
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
1280.0 83264.0 1280.0 8320.0 128.0 8320.0 128.0 66624.0 1024.0 8 0
NGCMN年轻代(young)中初始化(最小)的大小(字节)NGCMX年轻代(young)的最大容量 (字节)NGC年轻代(young)中当前的容量 (字节)S0CMX年轻代中第一个survivor幸存区的最大容量 (字节)S0C年轻代中第一个survivor幸存区的容量 (字节)S1CMX年轻代中第二个survivor幸存区的最大容量 (字节)S1C年轻代中第二个survivor幸存区的容量 (字节)ECMX年轻代中Eden伊甸园的最大容量 (字节)EC年轻代中Eden伊甸园的容量 (字节)YGC从应用程序启动到采样时年轻代中gc次数FGC从应用程序启动到采样时old代(全gc)gc次数
8、-gcold 老年代垃圾回收统计
[roothadoop ~]# jstat -gcold 3346 #用于查看老年代及持久代垃圾收集的情况
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
8448.0 8227.5 1024.0 1003.7 15104.0 2102.2 8 0 0.000 0.020
MCmetaspace(元空间)的容量 (字节)MUmetaspace(元空间)目前已使用空间 (字节)CCSC压缩类空间大小CCSU压缩类空间使用大小OCOld代的容量 (字节)OUOld代目前已使用空间 (字节)YGC从应用程序启动到采样时年轻代中gc次数FGC从应用程序启动到采样时old代(全gc)gc次数FGCT从应用程序启动到采样时old代(全gc)gc所用时间(s)GCT从应用程序启动到采样时gc用的总时间(s)
9、-gcoldcapacity 老年代内存统计
[roothadoop ~]# jstat -gcoldcapacity 3346 #用于查看老年代的容量
OGCMN OGCMX OGC OC YGC FGC FGCT GCT
15104.0 166592.0 15104.0 15104.0 8 0 0.000 0.020 OGCMNold代中初始化(最小)的大小 (字节)OGCMXold代的最大容量(字节)OGCold代当前新生成的容量 (字节)OCOld代的容量 (字节)YGC从应用程序启动到采样时年轻代中gc次数FGC从应用程序启动到采样时old代(全gc)gc次数FGCT从应用程序启动到采样时old代(全gc)gc所用时间(s)GCT从应用程序启动到采样时gc用的总时间(s)
10、-gcutil 垃圾回收统计
[roothadoop ~]# jstat -gcutil 3346 #显示垃圾收集信息
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
52.97 0.00 42.10 13.92 97.39 98.02 8 0.020 0 0.000 0.020
S0年轻代中第一个survivor幸存区已使用的占当前容量百分比S1年轻代中第二个survivor幸存区已使用的占当前容量百分比E年轻代中Eden伊甸园已使用的占当前容量百分比Oold代已使用的占当前容量百分比M元数据区已使用的占当前容量百分比CCS压缩类空间已使用的占当前容量百分比YGC 从应用程序启动到采样时年轻代中gc次数YGCT 从应用程序启动到采样时年轻代中gc所用时间(s)FGC 从应用程序启动到采样时old代(全gc)gc次数FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)GCT从应用程序启动到采样时gc用的总时间(s)
11、-gccause
[roothadoop ~]# jstat -gccause 3346 #显示垃圾回收的相关信息通-gcutil,同时显示最后一次或当前正在发生的垃圾回收的诱因
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC
52.97 0.00 46.09 13.92 97.39 98.02 8 0.020 0 0.000 0.020 Allocation Failure No GC
LGCC最后一次GC原因GCC当前GC原因No GC 为当前没有执行GC
12、-printcompilation JVM编译方法统计
[roothadoop ~]# jstat -printcompilation 3346 #输出JIT编译的方法信息
Compiled Size Type Method
421 60 1 sun/nio/ch/Util$2 clear
Compiled编译任务的数目Size方法生成的字节码的大小Type编译类型Method类名和方法名用来标识编译的方法。类名使用/做为一个命名空间分隔符。方法名是给定类中的方法。上述格式是由-XX:PrintComplation选项进行设置的