官方手册:
- https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/index.html
- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/toc.html
jps
列出目标系统上已检测到的Java虚拟机(JVM)
jps -lvm
输出:
jstat
监视Java虚拟机(JVM)统计信息
# 每1000ms输出一次gc统计信息,循环10次
jstat -gc 7 1000 10
结果:
垃圾收集的堆统计信息:
S0C
:当前生存空间0容量(kB)。S1C
:当前生存空间1的容量(kB)。S0U
:幸存者空间0利用率(kB)。S1U
:幸存者空间1利用率(kB)。EC
:当前Eden空间容量(kB)。EU
:Eden空间利用率(kB)。OC
:当前的旧空间容量(kB)。OU
:旧空间利用率(kB)。MC
:元空间容量(kB)。MU
:元空间利用率(kB)。CCSC
:压缩的类空间容量(kB)。CCSU
:使用的压缩类空间(kB)。YGC
:年轻一代垃圾收集事件的数量。YGCT
:年轻一代垃圾回收时间。FGC
:完整GC事件的数量。FGCT
:完整的垃圾收集时间。GCT
:总垃圾收集时间。
其他选项options
options | action |
---|---|
-class | 类加载器统计信息 |
-compiler | Java HotSpot VM即时编译器统计信息 |
-gc | 垃圾收集的堆统计信息 |
-gccapacity | 内存池的生成和空间容量 |
-gcutil | 垃圾收集统计信息摘要 |
-gccause | 与 -gcutil 信息相同, 但包括上一个和当前垃圾收集事件(如果有)的原因 |
-gcnew | 新一代统计数据 |
-gcnewcapacity | 新一代空间大小统计信息 |
-gcold | 老一代和元空间行为统计 |
-gcoldcapacity | 老一代和元空间大小统计信息 |
-gcmetacapacity | 元空间大小统计信息 |
-printcompilation | Java HotSpot VM编译器方法统计信息 |
jstack
打印Java进程,核心文件或远程调试服务器的Java线程堆栈跟踪
# 打印全部线程状态
jstack 7
jmap
打印Java进程,核心文件或远程调试服务器的Java线程堆栈跟踪
# 列出占用内存最大的几个对象
jmap -histo 7 | head -n 15
注意: 使用jmap -histo:live
或者jmap -dump:live
都会触发Full GC
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。