线上内存调优实战-----jcmd

在JDK 1.7之后,新增了一个命令行工具jcmd。它是一个多功能工具,可以用来导出堆,查看Java进程,导出线程信息,执行GC等。

jcmd功能非常强大,性能监控,进程启动参数,系统属性,线程状态,内存分布使用情况,内存回收情况。

命令格式:jcmd pid command

 jcmd 20 help

jcmd 20 VM.native_memory

 jcmd 20 VM.uptime

 jcmd 20 Thread.print

jcmd 20 Thread.print > print.info

cat print.info |grep java.lang.Thread.State |wc -l

18 jcmd 20 GC.class_histogram

19 jcmd 20 GC.class_histogram > gram

25 cat gram |wc -l

26 jcmd 20 VM.system_properties

27 jcmd 20 VM.flags

28 jcmd 20 PerfCounter.print

30 jcmd 20 VM.native_memory summary

31 jcmd 20 VM.native_memory summary scale=MB

33 jcmd 20 VM.native_memory detail scale=MB

从以上示例可以看出,jcmd拥有jmap的大部分功能,并且Oracle官方也建议使用jcmd代替jmap。


版权声明:本文为lijunfeng513原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。