您的位置:首页 > 编程语言 > Java开发

java jcmd命令(Java Command 内存分析工具使用)

2015-04-01 09:23 253 查看

问题描述

为了分析和定位一个Java线上系统问题,我们需要查看JVM启动时的一些参数设置,例如:垃圾回收算法、堆大小等等。这些参数可能在启动脚本中明确指明,也可能采用默认值。在系统运行过程中其他人也许动态调整了系统参数。 如何实时查看正在运行的JVM的参数呢?

解决方案

可以采用jcmd来查看正在运行的JVM的参数。jcmd从JDK 7开始引入的一个JVM诊断命令行工具,可以向运行中的JVM发送诊断命令。

查看JVM进程的PID

$ jcmd -l
27940 sun.tools.jcmd.JCmd -l
24684 org.codehaus.plexus.classworlds.launcher.Launcher -Prun
23839 com.intellij.idea.Main
23951 org.jetbrains.idea.maven.server.RemoteMavenServer


查看进程24684的参数

$ jcmd 24684 VM.flags
24684:
-XX:InitialHeapSize=98566144 -XX:MaxHeapSize=1547698176 \
-XX:MaxNewSize=515899392 -XX:MinHeapDeltaBytes=524288 \
-XX:NewSize=1572864 -XX:OldSize=96993280 \
-XX:+UseCompressedClassPointers \
-XX:+UseCompressedOops -XX:+UseParallelGC


堆大小设置,垃圾回收算法等一目了然。

转载自:http://segmentfault.com/a/1190000000470139

参考:http://www.softown.cn/post/178.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工具 命令