美文网首页
第4章 虚拟机性能监控与故障处理工具

第4章 虚拟机性能监控与故障处理工具

作者: MikeShine | 来源:发表于2020-02-12 15:20 被阅读0次

    写在前面

    本章并不是重点,不过我们需要了解一下关于4.2 小节,JDK 命令行工具的部分。大概都使用一下。


    4.2 JDK 命令行工具

    接下来,我们就介绍一下 JDK 中比较重要的命令行工具。

    JPS

    JPS(JVM Process Status Tool),用来列出正在运行的虚拟机进程,并且显示虚拟机的主类。
    有一些参数, -v 参数,输出 JVM 的进程启动参数。

    jps -v 输出 JVM 启动参数

    用的就是 -l (L) 参数,输出主类的全名,如下图。


    jps -l 输出主类全名

    可以看到,我自己运行了一个 JPSTest 类,也可以被 jps -l 加载显示出来。

    jstat

    jstat(JVM Statistics Monitoring Tool),用来 监视虚拟机各种运行状态信息的工具。
    这里的查询信息,主要是3类:类装载(-class)、垃圾收集(-gc)、运行编译状况(-compiler)


    jstat在 Mike PC上的运行实例

    这里的 gc 是说监控垃圾回收,10524 是java 程序 端口号,250是指每隔250毫秒查询一次,20是指一共查询20次。


    jstat 实例2
    可以看到,这个主要是输出已使用空间所占的百分比。
    jinfo

    jinfo(Configuration info for java),用来实时查看和调整虚拟机的参数。
    上面说到 jps -v 输出JVM启动参数,这些参数都是显示指定的。
    想要知道一些系统默认的参数,需要使用 jinfo -flag 指令

    jinfo -flag 指令查询 CMSInitiatingOccupancyFraction参数
    jmap

    jmap(Memory Map for Java),生成堆转储快照(称为 dump 文件),查看 java 堆信息。
    主要使用的有 -dump -heap 等参数

    jmap -dump 生成堆转储快照
    可以看到,上面的 dump文件失败了。
    jmap -heap 查看堆内存信息
    jhat

    jhat(JVM Heap Analysis Tool),用来分析上面一步中 jamp -dump 产生的 dump 文件。
    不过一般不会用这个工具分析。


    jhat 分析 dump 文件

    可以看到这个dump文件并不标准,是我自己用任务管理器生成的,所以在分析时候报错,魔数错误,不是一个标准的类。

    jstack

    jstack(Stack Trace for Java),用于生成虚拟机当前时刻的线程快照(threaddump)文件。
    当线程出现停顿的时候,通过 jstack 来查看各个线程调用的堆栈,就可以看到没有响应的线程在后台做什么。


    jstack 查看线程调用堆栈
    HSDIS

    JIT编译代码的反汇编插件。

    相关文章

      网友评论

          本文标题:第4章 虚拟机性能监控与故障处理工具

          本文链接:https://www.haomeiwen.com/subject/ikqcfhtx.html