java指令工具_jvm 指令工具 jcmd 命令(Java多功能命令行)
jcmd 命令
在 jdk1.7 之后,新增了一个命令行工具jcmd,它是一个多功能工具,用它可以导出堆,查看java进程,导出线程信息,执行GC等。jcmd能将命令发送给正在运行的JVM,诊断运行中的java应用。
jcmd程序须运行在与JVM相同机器上,需拥有与JVM相同的权限。
jcmd程序可在已运行的JVM中,动态地与Java飞行记录器(JFR)交互。
如果,应用程序已处于停止响应状态,则可使用jcmd命令进行数据收集工作,如:收集堆栈信息:jcmd Thread.print。
jcmd 语法jcmd [-l|-h|-help]
jcmd pid|main-class PerfCounter.print
jcmd pid|main-class -f filename
jcmd pid|main-class command[ arguments]
1、帮助➜ kc_script jcmd -h
Usage: jcmd
or: jcmd -l
or: jcmd -h
command must be a valid jcmd command for the selected jvm.
Use the command "help" to see which commands are available.
If the pid is 0, commands will be sent to all Java processes.
The main class argument will be used to match (either partially
or fully) the class used to start Java.
If no options are given, lists Java processes (same as -p).
PerfCounter.print display the counters exposed by this process
-f read and execute commands from the file
-l list JVM processes on the local machine
-h this help
说明-f:从文件中读取并执行命令
-l:本地机器上列出jvm的进程
-h:帮助
2、列出虚拟机
命令:jcmd -l
列出本机所有的虚拟机。[root@searching-search-service-7cbfd67967-lczgh /]# jcmd -l
19 org.apache.catalina.startup.Bootstrap start
3662 sun.tools.jcmd.JCmd -l
3、查看jcmd支持的命令
命令:jcmd help
列出pid对应虚拟机所支持的命令。[root@searching-search-service-7cbfd67967-lczgh /]# jcmd 19 help
19:
The following commands are available:
JFR.stop # java飞行记录器 停止
JFR.start # java飞行记录器 开始
JFR.dump # java飞行记录器 dump
JFR.check # java飞行记录器 检查
VM.native_memory # 虚拟机本地内存
VM.check_commercial_features #
VM.unlock_commercial_features #
ManagementAgent.stop
ManagementAgent.start_local
ManagementAgent.start
GC.rotate_log
Thread.print # 线程打印
GC.class_stats # 类统计数据
GC.class_histogram # 类直方图
GC.heap_dump # gc堆dump
GC.run_finalization # gc运行结束
GC.run # gc运行
VM.uptime # 虚拟机运行时间单位 秒
VM.flags # 虚拟机信息
VM.system_properties # 虚拟机系统配置
VM.command_line # 虚拟机命令行
VM.version # 虚拟机版本
help
For more information about a specific command use 'help '.
然后挑选出虚拟机支持的任意命令执行:jcmd pid xxx;
如果需要对特定的命令进行帮助说明,可以在 help 之后加上命令名。# 查询内容
[root@searching-search-service-7cbfd67967-lczgh /]# jcmd 19 VM.version
19:
Java HotSpot(TM) 64-Bit Server VM version 25.161-b12
JDK 8.0_161
# 查询帮助
[root@searching-search-service-7cbfd67967-lczgh /]# jcmd 19 help VM.version
19:
VM.version
Print JVM version information.
Impact: Low
Permission: java.util.PropertyPermission(java.vm.version, read)
Syntax: VM.version
帮助信息包含了命令的含义、影响、权限、语法等信息。
4、生成堆dump
命令:jcmd GC.heap_dump filepath
很多时候我们需要生成dump,再使用特定工具去详细进行分析(例如VisualVm)。
之前说过的 jmap 同样可以生成dump文件,Oracle 推荐使用 jcmd。# 生成文件
[root@searching-search-service-7cbfd67967-lczgh /]# jcmd 19 GC.heap_dump gc.hprof
19:
Heap dump file created
# 查看文件大小
[root@searching-search-service-7cbfd67967-lczgh /]# ll -h
-rw------- 1 root root 187M 1月 27 19:08 gc.hprof
5、生成类直方图
命令:jcmd GC.class_histogram
类直方图是一个较为直观的状态去查看内存分布的情况。
与jmap -histo 效果相同,推荐使用jcmd工具。
另外jhat也可以分析出类直方图# 导出到文件
[root@searching-search-service-7cbfd67967-lczgh /]# jcmd 19 GC.class_histogram > tmp.log
# 查看文件
[root@searching-search-service-7cbfd67967-lczgh /]# more tmp.log
19:
num #instances #bytes class name
----------------------------------------------
1: 12844 94591240 [B
2: 145686 20808208 [C
3: 25526 8967192 [Ljava.lang.Object;
4: 142502 3420048 java.lang.String
5: 3276 2149056 io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue
6: 16175 1795488 java.lang.Class
7: 52844 1691008 java.util.concurrent.ConcurrentHashMap$Node
8: 15177 1335576 java.lang.reflect.Method
9: 38339 1226848 java.util.HashMap$Node
10: 243 982864 [Ljava.nio.ByteBuffer;
11: 8322 829632 [I
12: 232 664304 [Ljava.nio.channels.SelectionKey;
13: 6106 657016 [Ljava.util.HashMap$Node;
14: 13629 654192 java.util.HashMap
15: 914 467192 [Ljava.util.concurrent.ConcurrentHashMap$Node;
16: 1229 462104 java.lang.Thread
17: 26228 419648 java.lang.Object
6、打印线程状态
有时候我们的应用程序会产生死锁或者频繁争抢资源的情况,那么就可以通过打印线程状态来详细分析各个线程的执行状态。jstack
jcmd Thread.print
故障排除
jcmd程序提供如下故障排除选项:
1、录制记录(Start a recording)
示例:在指定Java进程(19)上开始2分钟记录,并保存到当前目录的my-recording.jfr文件中。[root@searching-search-service-7cbfd67967-lczgh /]# jcmd 19 JFR.start name=MyRecording settings=profile delay=20s duration=2m filename=tmp/my-recording.jfr
19:
Java Flight Recorder not enabled.
Use VM.unlock_commercial_features to enable.
如果没有开启会有提示,使用 VM.unlock_commercial_features 开启,在VM options 添加: -XX:+UnlockCommercialFeatures。
2、检查记录(Check a recording)
JFR.check检查正在运行的记录,如:jcmd 19 JFR.check
3、停止记录(Stop a recording)
JFR.stop命令停止正在运行的记录,如:jcmd 19 JFR.stop
4、转储记录(Dump a recording)
JFR.dump命令停止正在运行的录制,并将记录存储到record文件,如:jcmd 19 JFR.dump name=MyRecording filename=tmp/my-recording.jfr
java指令工具_jvm 指令工具 jcmd 命令(Java多功能命令行)相关推荐
- 终端查看命令有哪些功能命令_从命令式功能到纯粹功能式功能,再返回:Monads与范围内的延续...
终端查看命令有哪些功能命令 这段视频附带了这篇文章,没有它就不会太有意义 上个月,我在Curry On会议上做了演讲,该会议是与学术,编程语言会议ECOOP共同举办的新会议. Curry On旨在弥合 ...
- java jstack 分析工具_JVM分析工具——jstack实践
JVM分析工具--jstack实践 一.不是万能的jstack 企业级的Java程序中,java程序出现性能低下甚至直接崩溃时,就不能像解决业务bug那样,从行为表现上来修复问题了.性能问题一般是jv ...
- java perm 查看_JVM 分析工具和查看命令,超详细
jinfo 可以输出并修改运行时的java 进程的opts. jps 与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat 一个极强 ...
- java内存块_JVM上的并发和Java内存模型之同步块笔记
本文来自 图灵社区@fairjm 转截请注明出处 这个是书的笔记 书可以在safaribooksonline看,话说这个真的是一个很好的读外文书的网站啊,一个月39刀就可以畅想全站的书,很值.(订订订 ...
- 七、jdk工具之jconsole命令(Java Monitoring and Management Console)
目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...
- Linux常用基础指令、Linux常用工具(软件包)使用带图详解
目录 目录相关指令: 文件相关指令: 压缩解压缩指令: 匹配查找指令: 权限相关指令: Linux常用工具: 指令使用规则:指令 [该指令的详细操作选项] [操作对象(通常有路径)],后面两可不加. ...
- 【chip-tool】chip-tool工具常用指令介绍
chip-tool 工具可用于调试 matter 设备,是matter协议新兴起时所使用的重要工具,由于资料都是英文 的很不友好,因此本文根据官方教程和自己的理解整理如下,本文主要介绍 chip-to ...
- 关于发那科工具偏移指令
经常遇到用户坐标系斜面需要建立用户坐标,有时建立用户坐标不是太方便,可以使用工具偏移指令向Z方向偏移 使用工具偏移之后原来的工具坐标要修改现在工具坐标系
- 字节码是java虚拟机的指令组_JVM??
[是什么] JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.J ...
最新文章
- “互联网+”的时代,易佳互联也随着时代步伐前进着
- Java IO流思维导图
- 计算机网络电缆被拔出是怎么办,网络电缆被拔出是什么意思?网络电缆被拔出的修复办法...
- Jupyter中那些神奇的第三方拓展魔术命令
- socket网络编程——TCP编程流程及端口号占用问题
- 如何使用域组策略(AD GPO)分发软件安装以及卸载[1.31.2013更新]
- linux cd 一些用法
- matplotlib -work4
- 移动端rem布局(阿里)
- 编写更加稳定、可读性强的JavaScript代码
- 基于BERT的ASR纠错
- 今天写了个查看 ABAP 类层级的程序
- 二维码在线生成器如何批量制作设备标牌二维码
- 致远项目管理SPM系统五大技术平台层-CMP能力概述
- 测绘乙级摄影测量与遥感专业资质需要用到这些人员
- 个性化品牌开始繁荣?为设计师和代工厂牵线的平台Maker's Row获得100万美元融资 | 36氪...
- 【超全】一文详解机器学习特征工程(附代码)
- VS2017无法调试Unity
- 来自谷歌大脑的SpineNet:一种非常规的主干结构
- HDU 5445 (多重背包)