1 基本知识

jcmd 是在 JDK1.7 以后,新增了一个命令行工具。

jcmd 是一个多功能的工具,相比 jstat 功能更为全面的工具,可用于获取目标 Java 进程的性能统计、JFR、内存使用、垃圾收集、线程堆栈、JVM 运行时间,也可以手动执行 GC、导出(TODO 能导出线程信息?)线程信息、堆信息等信息。

2 jcmd 用法

2.1 查看进程 jcmd -l

作用:查看 当前机器上所有的 jvm 进程信息。
同类作用的命令:jcmd、 jcmd -l 、 jps -lm 这三个命令作用相同

2.2、jps -lm

1255 org.tanukisoftware.wrapper.WrapperSimpleApp CloudResetPwdUpdateAgent
20399 /etc/java-app/springtest-0.0.1-SNAPSHOT.jar
5087 sun.tools.jps.Jps -lm

2.3 列出当前运行的 java 进程可以执行的操作【常用】

命令:jcmd help
作用:列出当前运行的 java 进程可以执行的操作

2.4 查看具体命令的选项

命令:jcmd help command
作用:列出当前运行的 java 进程可以执行的操作

2.5 查看内存信息【常用】

命令:jcmd GC.heap_info
作用:查看JVM内存信息,虽然名称为heap_info,但是除了堆内存信息,也会有堆外内存之一的Metaspace的信息。相比jstat命令结果会更直观一些。

2.6 查看性能统计信息

命令:jcmd PerfCounter.print
作用:查看指定进程的性能统计信息。

2.7 VM.uptime

命令:jcmd VM.uptime
作用:查看 JVM 的已启动时长。

2.8 GC.class_histogram【常用】

命令:jcmd GC.class_histogram
作用:查看系统中类统计信息。
同类作用的命令:和jmap -histo pid的效果是一样的,可以查看每个类的实例数量和占用空间大小。

2.9 Thread.print

命令:jcmd Thread.print
作用:查看线程堆栈信息。

同类作用的命令:和jstack -l作用一样

2.10 GC.heap_dump

命令:jcmd GC.heap_dump FILE_NAME
作用:查看 JVM 的Heap Dump。导出的 dump 文件,可以使用MAT 或者 Visual VM 等工具进行分析(如果只指定文件名,默认会生成在启动 JVM 的目录里)

同类作用的命令:和 jmap -dump:format=b,file=heapdump.phrof pid 作用一样

2.11 VM.system_properties

命令:jcmd VM.system_properties
作用:查看 JVM 的属性信息。

2.12 VM.flags

命令:jcmd VM.flags
作用:查看 JVM 的启动参数。

结果解析:

-XX:InitialHeapSize:初始堆大小。同-Xms
-XX:MaxHeapSize: 最大堆大小。 同-Xmx
-XX:MinHeapDeltaBytes: 表示当JVM决定是否要做或者尝试扩容的时候最小扩/缩多少,JDK1.8以下默认为192K,JDK1.8默认512K
-XX:newSize:表示新生代初始内存的大小
-XX:MaxNewSize:JVM堆区域新生代内存的最大可分配大小
-XX:OldSize:老生代的大小
-XX:+UseParallelGC:指 定在New Generation 使用 parallel collector垃圾收集器 -XX:CICompilerCount:最大并行编译数

-XX:+UseCompressedClassPointers:开启类指针压缩

-XX:+UseCompressedOops:开启普通对象指针压缩

2.13 VM.command_line

命令:jcmd VM.command_line
作用:查看 JVM 的启动命令行。

2.14 GC.run_finalization

命令:jcmd GC.run_finalization
作用: 对 JVM 执行 java.lang.System.runFinalization()。执行一次 finalization 操作,相当于执java.lang.System.runFinalization()。调用已经失去引用的对象的finalize方法,但是JVM可以选择执行或者不执行。

2.15 GC.run

命令:jcmd GC.run
作用:对 JVM 执行 java.lang.System.gc()。同 GC.run_finalization 告诉垃圾收集器打算进行垃圾收集,但是JVM可以选择执行或者不执行。

2.16 VM.version

命令:jcmd VM.version
作用:查看目标jvm进程的版本信息。

2.17 VM.native_memory

命令:jcmd VM.native_memory
作用:查看目标jvm进程的Native Memory Tracking (NMT)信息,用于追踪JVM的内部内存使用。

jcmd <pid> VM.native_memory [summary | detail | baseline | summary.diff | detail.diff | shutdown] [scale= KB | MB | GB]

summary: 分类内存使用情况.

detail: 详细内存使用情况,除了summary信息之外还包含了虚拟内存使用情况。

baseline: 创建内存使用快照,方便和后面做对比

summary.diff: 和上一次baseline的summary对比

detail.diff: 和上一次baseline的detail对比

shutdown: 关闭NMT

更具体的使用方法参考:

https://blog.csdn.net/superiorpengFight/article/details/109353633

参考文章:https://www.jianshu.com/p/011f0e3a39ff

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览117157 人正在系统学习中

[转帖]jcmd命令详解的更多相关文章

  1. [转帖]xargs命令详解,xargs与管道的区别

    xargs命令详解,xargs与管道的区别 https://www.cnblogs.com/wangqiguo/p/6464234.html 之前一直说要学习一下 xargs 到现在为止也没学习.. ...

  2. [转帖]dd命令详解

    dd命令详解 https://czmmiao.iteye.com/blog/1748748 之前一直对linux的命令很恐惧 现在发现 其实不是那么复杂 要仔细学习就可以了 比如 dd = disk ...

  3. [转帖]pidstat 命令详解

    pidstat 命令详解 https://www.jianshu.com/p/3991c0dba094 pidstat -r -u -d -p 各种参数非常好用. pidstat 概述 pidstat ...

  4. [转帖]ps 命令详解

    ps 命令详解 https://www.jianshu.com/p/cba22cce2f97 ps 概述 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那 ...

  5. [转帖]iostat 命令详解

    iostat 命令详解 https://www.jianshu.com/p/5fed8be1b6e8 概述 iostat 主要用于输出磁盘IO 和 CPU的统计信息. iostat属于sysstat软 ...

  6. [转帖]Linux的wget命令详解

    Linux的wget命令详解 来源不明 找到的也是转帖的 https://www.cnblogs.com/cindy-cindy/p/6847502.html Linux wget是一个下载文件的工具 ...

  7. 【转帖】Linux定时任务Crontab命令详解

    Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...

  8. [转帖]Linux:cut命令详解

    Linux:cut命令详解 https://www.cnblogs.com/Spiro-K/p/6361646.html cut -f cut -f -d cut -c1- 这三个命令好像最常见, 记 ...

  9. [转帖]Linux chattr 命令详解

    Linux chattr 命令详解 https://www.cnblogs.com/ftl1012/p/chattr.html 常见命令参数 1 2 3 4 5 6 7 8 9 10 11 12 A: ...

  10. 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解

    linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...

随机推荐

  1. 【Python】人工智能-机器学习——不调库手撕深度网络分类问题

    1. 作业内容描述 1.1 背景 数据集大小150 该数据有4个属性,分别如下 Sepal.Length:花萼长度(cm) Sepal.Width:花萼宽度单位(cm) Petal.Length:花瓣 ...

  2. 如何延长window11更新信息?

    前言 日常使用电脑的时候,我们总是会遇到一个很常见的问题:如何关闭windows自动更新. 解决方法一: 暂停更新 解决方法二: 打开注册表: 运行 => regedit 进入: HKEY_LO ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (57)-- 算法导论6.4 1题

    文心一言 VS 讯飞星火 VS chatgpt (57)-- 算法导论6.4 1题 一.参照图 6-4 的方法,说明 HEAPSORT 在数组 A=(5,13,2,25,7,17,20,8,4)上的操 ...

  4. 案例解析关于ArkUI框架中ForEach的潜在陷阱与性能优化

    本文分享自华为云社区<深入解析ForEach的潜在陷阱与性能优化:错误用法与性能下降的案例分析>,作者:柠檬味拥抱 . 在ArkUI框架中,ForEach接口是基于数组类型数据进行循环渲染 ...

  5. 华为云HBase冷热分离最佳实践

    本文分享自华为云社区<华为云HBase 冷热分离最佳实践>,作者:pippo. HBase介绍 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面 ...

  6. 数据交换不失控:华为云EDS,让你的数据你做主

    摘要:华为云EDS在"可信.可控.可证"的框架基础上进行数据空间的关键设计,打造数据可控交换的全栈能力. 数字社会,每时每刻都有海量数据产生,数据也逐渐从生产过程的附属产物,逐渐成 ...

  7. LiteOS内核源码分析:静态内存Static Memory

    摘要:本文带领大家一起剖析了LiteOS静态内存模块的源代码,包含静态内存的结构体.静态内存池初始化.静态内存申请.释放.清除内容等. 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要 ...

  8. 火山引擎DataTester:跨境电商网站,如何快速实施AB测试 ?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   如今中企出海的形态愈加多样,很多企业都建有独立站可直接触达海外客户,但获取优质流量的成本会更加高昂.当优质流量 ...

  9. Solon 的热插拔能力框架 “solon.hotplug” 介绍

    <dependency> <groupId>org.noear</groupId> <artifactId>solon.hotplug</arti ...

  10. Kubernetes(K8S) Deployment 拉取阿里云镜像部署

    Docker Image 推到阿里云仓库,可以看 SpringBoot Docker 发布到 阿里仓库 1. 阿里镜像仓库加了授权,所以 K8S 拉之前要做下授权处理 [root@k8smaster ...