深入理解Java虚拟机(四): 虚拟机性能监控

且听风吟 发表于 2019/11/03 20:23:05 2019/11/03
【摘要】 本文带你了解java虚拟机中的性能监控。

JDK命令行工具

jps(JVM Proccess Status Tool)

  • 显示指定系统内所有HotSpot虚拟机进程

  • 参数

  • -q 只输出LVMID(Local Virtual Machine Identifier),省略主类名

  • -m 输出虚拟机进程启动时传递给主类main()函数的参数

  • -l 输出全路径名,如果是jar则输出jar的全路径

  • -v 输出虚拟机进程启动时JVM参数

jstat(JVM Statistics Monitoring Tool)

  • 收集HotSpot虚拟机各方面的运行数据

  • 命令格式:

image.png

  • option:用户想要查询的虚拟机信息

    • -class 监视类装载、卸载数量、总空间及类装载耗时

    • -gc 监控Java堆状况,包括eden、survivor、老年代、永久代等容量、已用空间、GC时间合计等信息

    • -gccapacity 与-gc差不多,但输出主要关注Java堆各个区域使用到的最大、最小空间

    • -gcutil 与-gc差不多,但输出主要关注已使用空间占总空间的百分比

    • -gccause 与-gcutil一样,但是会多输出导致上次GC的原因

    • -gcnew 监视新生代GC状况

    • -gcnewcapacity 与-gcnew差不多,但输出主要关注使用到的最大、最小空间

    • -gcold 监视老年代GC装快

    • -gcoldcapacity 与-gcold差不多,但输出主要关注使用到的最大、最小空间

    • -gcpermcapacity 输出永久代使用到的最大、最小空间

    • -compiler 输出JIT编译过的方法、耗时等信息

    • -printcompilation 输出已经被JIT编译的方法

  • VMID和LVMID的区别:如果是本地则两个一样;如果是远程虚拟机,则VMID为:

image.png

  • 例:假如每250ms查询一次进程2764的垃圾收集情况,一共查询20次,命令为:

image.png

jinfo(Configuration Info for Java)

  • 显示虚拟机配置信息

  • 格式

image.png

jmap(Memory Map for Java)

  • 生成虚拟机的内存存储快照(heapdump文件)

  • 命令格式

image.png

  • option参数

  • -dump 生成Java堆转储快照,格式为:-dump:[live,]format=b,file=

    ,其中live子参数说明是否只dump出存活的对象

  • -finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalize方法,只在linux/Solaris平台下有效

  • -heap 显示Java堆详细信息,只在linux/Solaris平台下有效

  • -histo 显示堆中对象统计信息, 包括类、实例数量、合计容量

  • -permstat 以ClassLoader为统计口径显示永久代内存状态。只在linux/Solaris平台下有效

  • -F 当虚拟机进程对-dump选项没有响应时,可以使用这个强制生成。只在linux/Solaris平台下有效

jhat(JVM Heap Dump Browser)

  • 用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以再浏览器上查看分析结果(耗时长,不推荐使用)

jstack(Stack Trace for Java)

  • 显示虚拟机线程快照

  • 命令格式

image.png

  • option 参数:

  • -F 当正常输出的请求不被响应时,强制输出线程堆栈

  • -l 除堆栈外,显示关于锁的附加信息

  • -m 如果调用到本地方法,可显示C/C++的堆栈

HSDIS:JIT生成代码反汇编

JDK可视化工具

==>>>JDK内置监控神器


本文转载自微信公众号【java学习之道】。

原文链接:https://mp.weixin.qq.com/s?__biz=MzU4NzYwNDAwMg==&mid=2247484178&idx=1&sn=6a3b47f1e1f085914e262aa6a0c74872&chksm=fde8ca5fca9f4349a623f5f0b75851a5a4b40f49ca97d15ff58baf17f0b6a4f54f6310cf309a&scene=0#rd

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。