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

问题描述

为了分析和定位一个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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要查看 Java 程序的内存占用,可以使用以下几种方法之一: 1. 使用 jconsole 工具:jconsole 是 Java 自带的一个图形化监视工具,可以实时查看 Java 程序的内存使用情况。 2. 使用 jstat 命令工具:jstat 是 Java 自带的一个命令工具,可以实时查看 Java 程序的内存使用情况。 3. 使用 VisualVM 工具:VisualVM 是一个免费、开源的 Java 监视工具,可以实时查看 Java 程序的内存使用情况。 4. 使用 Java Management Extension (JMX) 接口:Java 程序可以通过 JMX 接口暴露内存使用信息,可以使用第三方工具(如 Hyperic HQ、Nagios、Zabbix 等)监视 Java 程序的内存使用情况。 5. 使用 Java 程序内置的监视功能:Java 程序可以通过内置的监视功能(如 Runtime.getRuntime().totalMemory() 和 Runtime.getRuntime().freeMemory() 等方法)获取内存使用信息。 此外,还可以使用系统工具(如 top、ps、vmstat 等)查看 Java 程序的内存占用情况。 ### 回答2: 要查看Java程序的内存占用,可以使用Java虚拟机监控工具(JVM Monitor)或Java VisualVM等工具使用JVM Monitor时,首先需要在Java程序的启动命令中加入"-Dcom.sun.management.jmxremote"参数,以开启对JMX(Java Management Extensions)的支持。然后,通过JVM Monitor的界面可以实时查看Java程序的内存占用情况,包括堆内存和非堆内存使用情况,以及垃圾收集等相关信息。 另一种方法是使用Java VisualVM,它是一种功能强大的Java性能分析工具。它可以通过JMX或本地连接方式连接到正在运行的Java程序,并提供详细的性能监控和分析功能。在Java VisualVM中,可以通过"Monitor"选项卡查看Java程序的内存占用情况,包括堆内存使用情况、线程数、垃圾收集情况等。 除了这些工具之外,还可以使用一些命令工具来查看Java程序的内存占用情况,如jcmd、jinfo、jmap等。通过这些命令,可以获取Java虚拟机进程的一些参数和统计信息,包括堆内存使用情况、垃圾收集器类型等。 总之,要查看Java程序的内存占用,可以使用JVM Monitor、Java VisualVM等工具,或者使用一些命令工具,这些工具能够提供详细的内存监控和分析信息,帮助我们了解程序的内存使用情况,及时发现和解决内存泄漏等问题,提高程序的性能和稳定性。 ### 回答3: 要查看Java内存占用,可以使用Java虚拟机自带的工具或第三方工具。 对于Java虚拟机自带的工具,可以使用以下命令: 1. jps命令可以显示当前系统中所有Java进程的进程号。通过查看进程号,可以找到指定的Java进程。 2. jstat命令可以显示Java进程的各个内存区域的使用情况,包括堆内存、非堆内存、新生代、老年代等。 3. jmap命令可以生成Java进程的内存快照,并显示内存中对象的统计信息。可以通过该命令查看Java进程的内存占用情况。 4. jhat命令用于分析jmap生成的内存快照文件,可以在浏览器中以可视化的方式查看内存占用情况。 此外,还有一些第三方工具可以帮助查看Java内存占用,比如VisualVM、JConsole等,它们提供了更丰富的界面和功能来分析和监控Java应用程序的内存使用情况。 总结起来,查看Java内存占用可以通过Java虚拟机自带的工具(如jps、jstat、jmap、jhat)或第三方工具(如VisualVM、JConsole)来实现。通过这些工具,我们可以获取Java进程的内存使用情况,帮助分析和优化Java应用程序的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值