首页 > 其他分享 >jcmd常用用法

jcmd常用用法

时间:2023-05-17 21:56:42浏览次数:26  
标签:常用 java 查看 pid jcmd 用法 command jvm

jvm command

用于将诊断命令请求发送到正在运行的java虚拟机,从jdk7开始提供。是一个功能全面的工具,可用于获取目标java进程的性能统计,jfr,内存使用,垃圾收集,线程堆栈,jvm运行时间。

C:\Users\user>jcmd -h
Usage: jcmd <pid | main class> <command ...|PerfCounter.print|-f file>
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

pid:接受诊断命令请求的进程ID。
main class:接受诊断命令请求的进程main类。jcmd会将诊断命令请求发送给指定main class的所有java进程。
command:command必须是一个有效的jcmd命令,可以使用jcmd pid help命令查看可用的命令列表。如果pid是0,那么command将会被发送给所有java进程。main class会用来去匹配(局部匹配或全量匹配)。如果未指定任何选项,他将会列出正在运行的java进程标识符以及用于启动该进程的main class和命令参数(相当于使用了-l参数)
PerfCounter.print:打印指定Java进程上可用的性能计数器。
-f filename:从指定文件中读取命令并执行。在file中,每个命令必须写在单独的一行。以“#”开头的行会被忽略。当所有行的命令被调用完毕后,或者读取到含有stop关键字的命令,将会终止对file的处理。
-l:查看所有jvm进程。jcmd不使用参数与jcmd -l效果相同。

常用场景(pid均可换为主类全路径)

查看性能计数器

jcmd pid PerfCounter.print

查看jvm已启动时长

jcmd pid VM.uptime

查看系统中类统计信息,如类实例数量和占据空间大小。同jmap -histo pid。

jcmd pid GC.class_histogram

查看线程堆栈信息,同jstack -l。

jcmd pid Thread.print

查看jvm的heap dump,导出dump快照文件。

jcmd pid GC.heap_dump d:\a.hprof
# 可使用java visualvm装入分析快照。

查看jvm属性信息

jcmd pid VM.system_properties

查看jvm启动参数

jcmd pid VM.flags

查看jvm启动命令行

jcmd pid VM.command_line

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

jcmd pid GC.run

对jvm执行java.lang.System.gc()。同GC.run_finalization告诉垃圾收集器进行垃圾收集,但是jvm可选择执行或不执行。

jcmd pid GC.run

查看jvm版本信息

jcmd pid VM.version

查看目标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

标签:常用,java,查看,pid,jcmd,用法,command,jvm
From: https://www.cnblogs.com/xing54321/p/17410439.html

相关文章

  • 使用Git中,经常用commit -m推送到版本库?版本库又是什么?
    Hello,我是喜欢探索的索奇(即兴小索奇),在git中你可能会经常gitadd,gitcommit-m,gitpush,gitpull等操作....这是是第一篇给大家拓展git的知识,以后也会经常拓展的,因为它是代码之路,不可缺少的重要组成部分~版本库(Repository)是Git中的一个核心概念,它是用于存储项目代码、记录项目历史......
  • Ubuntu终端(terminal)及Thunderbird邮件客户端常用的快捷键
    Ubuntu终端常用的快捷键Ubuntu中的许多操作在终端(Terminal)中十分的快捷,记住一些快捷键的操作更得心应手。在Ubuntu中打开终端的快捷键是Ctrl+Alt+T。其他的一些常用的快捷键如下:快捷键功能Tab自动补全Ctrl+a光标移动到开始位置Ctrl+e光标移动到最末尾Ctrl+k删除此处至末尾的所有......
  • odoo16里面的常用方法
    一、全局搜索与显示defname_get(self):res=[]fororderinself:name=order.nameiforder.draw_number:name="%s-%s"%(name,order.draw_number)res+=[(order.id,name)]......
  • Nginx 常用的基础配置(web前端相关方面)
    基础配置userroot;worker_processes1;events{worker_connections10240;}http{log_format'$remote_addr-$remote_user[$time_local]''"$request"$st......
  • 【React】react-json-view用法
    react-json-view:前端json可视化插件安装:npminstall--savereact-json-view 使用:importReactJsonfrom'react-json-view'<ReactJson/>配置:<ReactJsoncollapsed={false}//是否收起,true为收起indentWidth={10}//缩进iconStyle='cir......
  • Set接口和常用方法+HashSet分析
    1. Set接口基本介绍  5171)无序(添加和取出的顺序不一致),没有索引[后面演示]2)不允许重复元素,所以最多包含一个null3) JDK API中Set接口的实现类有:2. Set 接口的常用方法和 List 接口一样, Set 接口也是 Collection 的子接口,因此,常用方法和 Collection 接口一样. ......
  • Map接口和常用方法
    1. Map 接口实现类的特点 [很实用]  530注意:这里讲的是JDK8的Map接口特点Map java1) Map与Collection并列存在。 用于保存具有映射关系的数据:Key-Value2) Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中3) Map中的key不允许重复,原因和HashSet一......
  • < Python全景系列-3 > Python控制流程盘点及高级用法、神秘技巧大揭秘!
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。 这是系列第三篇,在这篇文章中我们将全面深......
  • ★常用设计模式
    创建型模式简单工厂选择不一样的参数,生成不一样的产品可用switch()来做参数选择publicclassFoodFactory{publicstaticFoodmakeFood(Stringname){if(name.equals("noodle")){Foodnoodle=newLanZhouNoodle();noodle.addSpicy("more");returnnoodle;}elseif......
  • dpkg命令用法、Ubuntu下deb包的解压、打包、安装、卸载及常用命令参数
    dpkg命令的用法不带图简装:https://blog.csdn.net/wanghuohuo13/article/details/78916821?ops_request_misc=&request_id=&biz_id=102&utm_term=dpkg&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-6-.first_rank_v2_pc_rank_v29&am......