jcmd命令使用

Brenda      2022-02-17     544

关键词:

概述

在JDK 1.7之后,新增了一个命令行工具jcmd。

它是一个多功能工具,能够用来导出堆,查看java进程,导出线程信息。运行GC等。

使用演示样例

以下这个命令能够列出当前运行的全部虚拟机:

技术分享

參数-l表示列出全部java虚拟机,针对每个虚拟机,能够使用help命令列出该虚拟机支持的全部命令。例如以下图所看到的,以21024这个进程为例:

技术分享

查看虚拟机启动时间VM.uptime

技术分享

打印线程栈信息Thread.print

技术分享

查看系统中类统计信息GC.class_histogram

运行例如以下命令:

[[email protected]~]$ jcmd 21024 GC.class_histogram

得到结果例如以下:
技术分享

导出堆信息GC.heap_dump

使用例如以下命令能够导出当前堆栈信息,这个命令功能和 jmap -dump
功能一样

技术分享

获取系统Properties内容VM.system_properties

技术分享

获取启动參数VM.flags

技术分享

获取全部性能相关数据PerfCounter.print

技术分享

总结

从以上演示样例能够看出,jcmd拥有jmap的大部分功能,而且Oracle官方也建议使用jcmd取代jmap。



使用jcmd采集jfr(代码片段)

...等。可以说,JCMD集成了以前我们常用的jstack,jps,jmap等命令,就像瑞士军刀一样,allinone。除了这些功能,JCMD还能够采集JFR信息进行性能分析。JFR:JavaFlyRecordJFR全称javaflyrecord,是Java平台性能分析和事件采集的框架,且是JDK自带... 查看详情

jvm诊断命令jcmd介绍

...留出处。简介从JDK7开始,jdk提供了一个方便扩展的诊断命令jcmd,用来取代之前比较分散的jdk基础命令,如jps、jstack、jmap、jinfo等,并且jdk添加新的诊断功能,也会通过jcmd提供,所以还是有必要将这 查看详情

jvm性能调优工具之jcmd(代码片段)

概述在JDK1.7以后,新增了一个命令行工具jcmd。他是一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc工具的飞行记录器)。命令格式1jcmd<pid|mainclass><command...|PerfCounter.... 查看详情

jcmd(代码片段)

...性能统计信息   概述在JDK1.7以后,新增了一个命令行工具jcmd。他是一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc工具的飞行记录器)。命令格式jcmd<pid|mainc... 查看详情

javajmap与jcmd命令dump内存heap堆(代码片段)

//获取当前Java程序的进程idlongpid=ProcessHandle.current().pid();//jmap与jcmd两种命令方式效果相同,均为dump内存String[]cmd1="jmap","-dump:live,formt=b,file=D:/dump/jmap.hprof",String.val 查看详情

jvm监控命令

1.概述Jcmd是一个诊断Jvm的命令集工具,集成了包括Jps,Jstack以及采集JFR信息等功能.它必须运行在被诊断Jvm进程的同一台机器上.1)查询JVM进程及PID/dapeng-container/bin#jcmd-l252sun.tools.jcmd.JCmd-l13com.github.dapeng.bootstrap.Bootstrap2)查询指定... 查看详情

监控线程的3种方法(代码片段)

1.JDK命令行工具 - jstackjps-l查询当前运行线程jstack-[operation]pid其中operation:-F:当jstackpid没有响应时,使用-F强制dump线程信息-m:打印java线程栈和本地线程栈-l:长期监听,打印锁信息jstack-l13>/tmp/deadlock.txt-l会打印锁的附加信息... 查看详情

jcmdjmc介绍

一、jcmd命令使用概述在JDK1.7之后,新增了一个命令行工具jcmd。它是一个多功能工具,可以用来导出堆,查看Java进程,导出线程信息,执行GC等。使用示例下面这个命令能够列出当前运行的所有虚拟机:参数-l表示列出所有java虚... 查看详情

jcmd分析jvm虚拟机并解析jfr文件

Jcmd分析jvm虚拟机 在JDK1.7之后,新增了一个命令行工具jcmd。它是一个多功能工具,可以用来导出堆,查看java进程,导出线程信息,执行GC等。 开启JFR需要三步:创建一个包含了你自己配置的JFR模板文件。运行 jmc,然后... 查看详情

如何查看jvm的扩展参数

...看正在运行的JVM的参数。jcmd从JDK7开始引入的一个JVM诊断命令行工具,可以向运行中的JVM发送诊断命令。查看JVM进程的PID$jcmd-l27940sun.tools.jcmd.JCmd-l24684org.codehaus.plexus.classworlds.launcher.Launcher-Prun23839com.intellij.idea.Main23951org.jetbrains.idea... 查看详情

jvm监控诊断之命令行使用(代码片段)

JVM监控诊断1.jps命令2.jstat命令3.jinfo命令4.jmap命令5.jhat命令6.jstack命令7.jcmd命令8.jstatd命令在刚开始学习Java的时候,我们肯定对javac和java两个命令非常熟悉。但其实在JDK中,Oracle官方还给我们提供了许多辅助命令工具,... 查看详情

jfr使用记录

...cialFeatures-XX:+FlightRecorder添加到启动参数 2.需要时启动命令:jcmd$java_process_idJFR. 查看详情

OutOfMemoryError 堆转储

...COverheadlimitexceeded。我的应用程序没有HeapDumpOnOutOfMemoryError命令行选项。我需要堆转储,但是当我尝试使用jmap或jcmd工具捕获转储时,它们没有响应:jma 查看详情

获取java线程转储的常用方法(代码片段)

文章目录1.线程转储简介2.使用JDK自带的工具2.1jstack工具2.2JavaMissionControl2.3jvisualvm2.4jcmd2.5jconsole2.6小结3.使用Linux命令3.1使用`kill-3`指令3.2`Ctrl+Break`(Windows)4.通过编程方式使用ThreadMxBean5.总结6.附录:线程状态及示例代 查看详情

javajfr

 1.参数:-XX:+UnlockCommercialFeatures-XX:+FlightRecorder 2.运行命令:jcmd<PID>JFR.startname=testduration=60ssettings=template.jfcfilename=output.jfr 参考:https://www.cnblogs.com/duanxz/p/8 查看详情

jvm监控诊断之命令行使用(代码片段)

JVM监控诊断1.jps命令2.jstat命令3.jinfo命令4.jmap命令5.jhat命令6.jstack命令7.jcmd命令8.jstatd命令在刚开始学习Java的时候,我们肯定对javac和java两个命令非常熟悉。但其实在JDK中,Oracle官方还给我们提供了许多辅助命令工具,... 查看详情

Java 任务控制堆配置文件

...法在Memory->ObjectStatistics窗口中看到任何统计信息。以下命令启动集合:jcmd<pid> 查看详情

通过nativememorytracking查jvm的线程内存使用(线上jvm排障之九)

很多时候会面对线上内存使用很多,特别是本地内存怎么用的说不太清,就是每一块内存总和和总的Java线程占用内存不匹配。很多时候如果dump出来内存也没有太大的作用,因为本地内存是看不到。本地内存有很多是线程占用的... 查看详情