深入拆解 Java 虚拟机
郑雨迪
Oracle 高级研究员,计算机博士
86502 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
模块四:黑科技 (3讲)
深入拆解 Java 虚拟机
15
15
1.0x
00:00/00:00
登录|注册

30 | Java虚拟机的监控及诊断工具(命令行篇)

今天,我们来一起了解一下 JDK 中用于监控及诊断工具。本篇中我将使用刚刚发布的 Java 11 版本的工具进行示范。

jps

你可能用过ps命令,打印所有正在运行的进程的相关信息。JDK 中的jps命令(帮助文档)沿用了同样的概念:它将打印所有正在运行的 Java 进程的相关信息。
在默认情况下,jps的输出信息包括 Java 进程的进程 ID 以及主类名。我们还可以通过追加参数,来打印额外的信息。例如,-l将打印模块名以及包名;-v将打印传递给 Java 虚拟机的参数(如-XX:+UnlockExperimentalVMOptions -XX:+UseZGC);-m将打印传递给主类的参数。
具体的示例如下所示:
$ jps -mlv
18331 org.example.Foo Hello World
18332 jdk.jcmd/sun.tools.jps.Jps -mlv -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home -Xms8m -Djdk.module.main=jdk.jcmd
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解 Java 虚拟机》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(21)

  • 最新
  • 精选
  • 杨晓峰
    jmc早openjdk网站单独下载,目前需要7 ea版处理jdk11 http://jdk.java.net/jmc/

    作者回复: 谢谢峰哥!

    20
  • Geek_987169
    老师为什么官方文档介绍工具开头都有"This command is experimental and unsupported"这句话?

    作者回复: 翻译过来就是”我们不对结果负责” ;)

    2
    11
  • 嘿嘿,就喜欢这样的简单拿来主义,随学随用。老师能否深入讲一下这些命令的底层实现,对应的信息都是怎么获取到的?都是从哪里获取到的?如果说都是从JVM中感觉范围有点大,往细了讲是从JVM的什么地方获取的呢?

    作者回复: 记得很多是通过MXBeans的。然后JVM有个专门存放perf data的,JVM组件会将东西存在那,而jstat会从那里读取。 实现起来不复杂的,可以参考一下工具的源代码 https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/jdk.jcmd/share/classes/sun/tools

    5
  • Axis
    Jdk11下开源了jfr但是没有jmc这个工具查看性能文件 是为什么?

    作者回复: 怎么说呢,大佬们决定JMC应该另外下载。我揣测是为了减少JDK的编译时间,不确定哈

    2
  • 杨春鹏
    为什么我双击这些.exe,直接就闪退。

    作者回复: 都是命令行程序,没有GUI界面的

    1
  • Douglas
    老师讲的好像和jdk11 没啥关系吧

    作者回复: 嗯,以前版本都有这些工具。 只不过我使用了JDK11版本的这些工具,这句”注意”是用来避免结果有出入的。

    2
  • wkq2786130
    自己做的笔记,请大家斧正 http://weikeqin.com/2020/03/28/jvm-performance-tuning-monitoring-tool/
    6
  • 美滋滋
    null那位朋友 oom killer了解一下
    6
  • 田斌
    Jstack -F会导致Java进程一直挂起吗,说是jdk的bug,什么情况下会一直挂起呢
    1
    5
  • null
    老师, 你好 我想请教一个问题, 我们线上环境有一台tomcat偶尔会莫名的挂掉, 而且没有任何错误信息,日志都是正常的, 就像被kill -9一样。 请问这个怎么排查问题? 不会是人为的。 谢谢。
    1
    5
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部