30 | Java虚拟机的监控及诊断工具(命令行篇)
郑雨迪
该思维导图由 AI 生成,仅供参考
今天,我们来一起了解一下 JDK 中用于监控及诊断工具。本篇中我将使用刚刚发布的 Java 11 版本的工具进行示范。
jps
在默认情况下,jps的输出信息包括 Java 进程的进程 ID 以及主类名。我们还可以通过追加参数,来打印额外的信息。例如,-l将打印模块名以及包名;-v将打印传递给 Java 虚拟机的参数(如-XX:+UnlockExperimentalVMOptions -XX:+UseZGC);-m将打印传递给主类的参数。
具体的示例如下所示:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了Java虚拟机监控及诊断工具,重点关注了`jps`和`jstat`两个命令行工具。`jps`用于打印所有正在运行的Java进程的相关信息,而`jstat`则用于打印目标Java进程的性能数据,包括类加载、即时编译和垃圾回收等方面的数据。此外,还介绍了`jmap`、`jinfo`、`jstack`和`jcmd`等命令,它们分别用于分析Java虚拟机堆中的对象、查看和修改Java进程的参数、打印线程的栈轨迹以及替代前述命令。通过本文的总结,读者可以快速了解Java虚拟机监控及诊断工具的使用方法和相关技术特点,为Java应用程序的性能优化和故障排查提供了有力工具支持。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解 Java 虚拟机》,新⼈⾸单¥59
《深入拆解 Java 虚拟机》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(21)
- 最新
- 精选
- 杨晓峰jmc早openjdk网站单独下载,目前需要7 ea版处理jdk11 http://jdk.java.net/jmc/
作者回复: 谢谢峰哥!
2018-09-3020 - Geek_987169老师为什么官方文档介绍工具开头都有"This command is experimental and unsupported"这句话?
作者回复: 翻译过来就是”我们不对结果负责” ;)
2018-11-04211 - 钱嘿嘿,就喜欢这样的简单拿来主义,随学随用。老师能否深入讲一下这些命令的底层实现,对应的信息都是怎么获取到的?都是从哪里获取到的?如果说都是从JVM中感觉范围有点大,往细了讲是从JVM的什么地方获取的呢?
作者回复: 记得很多是通过MXBeans的。然后JVM有个专门存放perf data的,JVM组件会将东西存在那,而jstat会从那里读取。 实现起来不复杂的,可以参考一下工具的源代码 https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/jdk.jcmd/share/classes/sun/tools
2018-09-285 - AxisJdk11下开源了jfr但是没有jmc这个工具查看性能文件 是为什么?
作者回复: 怎么说呢,大佬们决定JMC应该另外下载。我揣测是为了减少JDK的编译时间,不确定哈
2018-09-282 - 杨春鹏为什么我双击这些.exe,直接就闪退。
作者回复: 都是命令行程序,没有GUI界面的
2018-10-111 - Douglas老师讲的好像和jdk11 没啥关系吧
作者回复: 嗯,以前版本都有这些工具。 只不过我使用了JDK11版本的这些工具,这句”注意”是用来避免结果有出入的。
2018-09-282 - wkq2786130自己做的笔记,请大家斧正 http://weikeqin.com/2020/03/28/jvm-performance-tuning-monitoring-tool/2020-03-306
- 美滋滋null那位朋友 oom killer了解一下2018-10-106
- 田斌Jstack -F会导致Java进程一直挂起吗,说是jdk的bug,什么情况下会一直挂起呢2018-11-0815
- null老师, 你好 我想请教一个问题, 我们线上环境有一台tomcat偶尔会莫名的挂掉, 而且没有任何错误信息,日志都是正常的, 就像被kill -9一样。 请问这个怎么排查问题? 不会是人为的。 谢谢。2018-09-2815
收起评论