Java常用内存诊断命令
常用命令
jcmd
jmap
jinfo
jstat
jcmd
jcmd
显示java进程
jcmd pid help
看某个进程的详细信息
查询heap信息 jcmd pid GC.heap_info
查看启动参数 jcmd pid VM.falgs
查询运行时间 jcmd pid VM.uptime
打印线程 jcmd pid Thread.print
jmap
遇到
Error attaching to process: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 25.77-b03. Target VM is 25.191-b12
sun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 25.77-b03. Target VM is 25.191-b12
解决方案:
进入jdk 的bin目录
./jmap pid
./jmap -heap pid
打印详细的heap信息
./jmap -histo:live pid
打印存活对象数量,以字节为单位的内存大小以及完全限定的类名称
./jmap -histo pid
打印对象数量,以字节为单位的内存大小以及完全限定的类名称
jinfo
遇到
Error attaching to process: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 25.77-b03. Target VM is 25.191-b12
sun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 25.77-b03. Target VM is 25.191-b12
解决方案:
进入jdk 的bin目录
./jinfo pid
./jinfo -flags pid 查询java 启动参数 和 jcmd pid VM.falgs一样
jstat
常用参数
class:显示有关类加载器行为的统计信息。
compiler:显示有关Java HotSpot VM即时编译器行为的统计信息。
gc:显示有关垃圾收集堆行为的统计信息。
gccapacity:显示有关世代容量及其相应空间的统计信息。
gccause:显示有关垃圾收集统计信息的摘要(与相同-gcutil),以及上一次和当前(如果适用)垃圾收集事件的原因。
gcnew:显示新一代行为的统计信息。
gcnewcapacity:显示有关新一代大小及其相应空间的统计信息。
gcold:显示有关旧时代行为的统计信息和元空间统计信息。
gcoldcapacity:显示有关上一代的大小的统计信息。
gcmetacapacity:显示有关元空间大小的统计信息。
gcutil:显示有关垃圾收集统计信息的摘要。
printcompilation:显示Java HotSpot VM编译方法统计信息。
jstat -gc pid 1000 10
没1s 打印一次 打印10次