[转帖]jcmd命令详解
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
[转帖]jcmd命令详解的更多相关文章
- [转帖]xargs命令详解,xargs与管道的区别
xargs命令详解,xargs与管道的区别 https://www.cnblogs.com/wangqiguo/p/6464234.html 之前一直说要学习一下 xargs 到现在为止也没学习.. ...
- [转帖]dd命令详解
dd命令详解 https://czmmiao.iteye.com/blog/1748748 之前一直对linux的命令很恐惧 现在发现 其实不是那么复杂 要仔细学习就可以了 比如 dd = disk ...
- [转帖]pidstat 命令详解
pidstat 命令详解 https://www.jianshu.com/p/3991c0dba094 pidstat -r -u -d -p 各种参数非常好用. pidstat 概述 pidstat ...
- [转帖]ps 命令详解
ps 命令详解 https://www.jianshu.com/p/cba22cce2f97 ps 概述 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那 ...
- [转帖]iostat 命令详解
iostat 命令详解 https://www.jianshu.com/p/5fed8be1b6e8 概述 iostat 主要用于输出磁盘IO 和 CPU的统计信息. iostat属于sysstat软 ...
- [转帖]Linux的wget命令详解
Linux的wget命令详解 来源不明 找到的也是转帖的 https://www.cnblogs.com/cindy-cindy/p/6847502.html Linux wget是一个下载文件的工具 ...
- 【转帖】Linux定时任务Crontab命令详解
Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...
- [转帖]Linux:cut命令详解
Linux:cut命令详解 https://www.cnblogs.com/Spiro-K/p/6361646.html cut -f cut -f -d cut -c1- 这三个命令好像最常见, 记 ...
- [转帖]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: ...
- 【转帖】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 ...
随机推荐
- 【Python】人工智能-机器学习——不调库手撕深度网络分类问题
1. 作业内容描述 1.1 背景 数据集大小150 该数据有4个属性,分别如下 Sepal.Length:花萼长度(cm) Sepal.Width:花萼宽度单位(cm) Petal.Length:花瓣 ...
- 如何延长window11更新信息?
前言 日常使用电脑的时候,我们总是会遇到一个很常见的问题:如何关闭windows自动更新. 解决方法一: 暂停更新 解决方法二: 打开注册表: 运行 => regedit 进入: HKEY_LO ...
- 文心一言 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)上的操 ...
- 案例解析关于ArkUI框架中ForEach的潜在陷阱与性能优化
本文分享自华为云社区<深入解析ForEach的潜在陷阱与性能优化:错误用法与性能下降的案例分析>,作者:柠檬味拥抱 . 在ArkUI框架中,ForEach接口是基于数组类型数据进行循环渲染 ...
- 华为云HBase冷热分离最佳实践
本文分享自华为云社区<华为云HBase 冷热分离最佳实践>,作者:pippo. HBase介绍 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面 ...
- 数据交换不失控:华为云EDS,让你的数据你做主
摘要:华为云EDS在"可信.可控.可证"的框架基础上进行数据空间的关键设计,打造数据可控交换的全栈能力. 数字社会,每时每刻都有海量数据产生,数据也逐渐从生产过程的附属产物,逐渐成 ...
- LiteOS内核源码分析:静态内存Static Memory
摘要:本文带领大家一起剖析了LiteOS静态内存模块的源代码,包含静态内存的结构体.静态内存池初始化.静态内存申请.释放.清除内容等. 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要 ...
- 火山引擎DataTester:跨境电商网站,如何快速实施AB测试 ?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 如今中企出海的形态愈加多样,很多企业都建有独立站可直接触达海外客户,但获取优质流量的成本会更加高昂.当优质流量 ...
- Solon 的热插拔能力框架 “solon.hotplug” 介绍
<dependency> <groupId>org.noear</groupId> <artifactId>solon.hotplug</arti ...
- Kubernetes(K8S) Deployment 拉取阿里云镜像部署
Docker Image 推到阿里云仓库,可以看 SpringBoot Docker 发布到 阿里仓库 1. 阿里镜像仓库加了授权,所以 K8S 拉之前要做下授权处理 [root@k8smaster ...