JDK命令jcmd
来源:互联网 发布:国家要打仗了知乎 编辑:程序博客网 时间:2024/06/06 02:47
jcmd用于向正在运行的JVM发送诊断信息请求,是从JDK1.7开始提供可以说是jstack和jps的结合体
命令格式
jcmd [ options ]jcmd [ pid | main-class ] PerfCounter.printjcmd [ pid | main-class ] command [ arguments ]jcmd [ pid | main-class ] -f file
options
命令行选项
pid
结束命令请求的进程ID
main-class
接收诊断命令请求的进程的main类
command [arguments]
命令
假使想要发送一个诊断命令请求到com.example.MyClass name=”Value of name argument”,其命令格式如下
jcmd com.example.MyClass name=\"Value of name argument\"jcmd com.example.MyClass name="'Value of name argument'"jcmd com.example.MyClass name='"Value of name argument"'
PerfCounter.print
打印目标进程的性能计数器
- file
从文件file中读取命令,然后在目标Java进程上调用这些命令。在file中,每个命令必须写在单独的一行。以"#"开头的行会被忽略。当所有行的命令被调用完毕后,或者读取到含有stop关键字的命令,将会终止对file的处理。
实例查看当前java进程
$ jcmd#进程pid #进程mainClass7012 sun.tools.jcmd.JCmd4876 org.apache.catalina.startup.Bootstrap start
查看目标jvm中能获取到的信息
$ jcmd 4876 help4876:The following commands are available:VM.native_memoryVM.commercial_featuresManagementAgent.stopManagementAgent.start_localManagementAgent.startThread.printGC.class_histogramGC.heap_dumpGC.run_finalizationGC.runVM.uptimeVM.flagsVM.system_propertiesVM.command_lineVM.versionhelpFor more information about a specific command use 'help <command>'.#如上所示有很多选项 要查看具体的选项意思和用法可以利用如下方式查看帮助信息#jcmd pid help <command>#例如$ jcmd 4876 help GC.run4876:GC.runCall java.lang.System.gc().Impact: Medium: Depends on Java heap size and content.Syntax: GC.run
查看目标jvm进程的版本信息
$ jcmd 4876 VM.version4876:Java HotSpot(TM) Client VM version 24.75-b04JDK 7.0_75
查看目标JVM进程的properties
$ jcmd 4876 VM.system_properties4876:#Wed Jan 20 11:08:17 CST 2016java.runtime.name=Java(TM) SE Runtime Environmentjava.vm.version=24.75-b04shared.loader=java.vm.vendor=Oracle Corporationjava.vendor.url=http\://java.oracle.com/path.separator=;java.vm.name=Java HotSpot(TM) Client VMtomcat.util.buf.StringCache.byte.enabled=truefile.encoding.pkg=sun.iouser.script=
查看目标进程的参数
$ jcmd 4876 VM.flags4876:-XX:InitialHeapSize=16777216 -XX:MaxHeapSize=268435456 -XX:-UseLargePagesIndividualAllocation
查看类柱形图
这里和jmap -histo pid的效果是一样的
$ jcmd 4876 GC.class_histogram
4876:
num #instances #bytes class name
1: 141718 16093456 [C
2: 77395 9721744 3: 77395 5579408 4: 6261 3956752
5: 140036 3360864 java.lang.String
6: 13098 2974464 [B
7: 6261 2573432 8: 5512 2386208
# 查看JVM性能相关的参数```bash$ jcmd 4876 PerfCounter.print4876:java.ci.totalTime=3840798java.cls.loadedClasses=6312java.cls.sharedLoadedClasses=0java.cls.sharedUnloadedClasses=0java.cls.unloadedClasses=50...
显示所有线程栈
$ jcmd 4876 Thread.print | more4876:2016-01-20 11:15:36Full thread dump Java HotSpot(TM) Client VM (24.75-b04 mixed mode):"http-nio-8055-exec-10" daemon prio=6 tid=0x190c0400 nid=0x1468 waiting on condition [0x1d38f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)
dump出hprof文件
$ jcmd 4876 GC.heap_dump dump.bin
执行一次finalization操作,相当于执行java.lang.System.runFinalization()
$ jcmd 4876 GC.run_finalization
0 0
- JDK命令jcmd
- jdk工具--jcmd
- jcmd命令使用
- jcmd和jinfo命令使用说明
- java jcmd命令(Java Command 内存分析工具使用)
- JDK命令
- Java Monitoring Tools之jcmd
- JDK的命令详解
- JDK的命令详解
- JDK的命令详解
- JDK的命令详解
- JDK的命令详解
- JDK命令一览
- JDK的命令详解
- JDK的命令详解
- JDK的命令详解
- JDK的命令详解
- JDK的命令详解
- 网易笔试 编程
- MPAndroidChart常见设置属性(一)——应用层
- Jetty 嵌入式Web
- RMQ问题 裸题
- bzoj3244 NOI2013树的计数 神奇脑洞题+线段树
- JDK命令jcmd
- ListView中convertView的缓存个数的探究
- JavaWeb---数据分页
- 统计序列中出现一次的数字
- cocos2d-lua 手游之RichText的改写
- Andriod 测试 步骤流程
- 降低Java垃圾回收开销的5条建议
- WebRTC录音【转】
- 第一次玩CSDN,专业计算机,学习java,有兴趣的朋友可以加我。