JVM-虚拟机性能监控工具 与故障处理工具

1.概述:

       在线上处理问题的时候,知识,经验是关键基础,数据 是依据,工具是知识处理数据的手段,本文说的数据包括主要是 指运行日志、异常堆栈、GC日志、快照 文件 等。在本文中,工具 主要是指JDK自带的工具,主要是 位于JDK的bin目录下面,如 图所示:
这里写图片描述

2.常见监控工具 & 指令

1. jps进程监控工具

该命令很像UNIX的PS命令,可以列出当前用户正在运行的虚拟机进程,功能虽单一,但使用频率超级高。

jps命令格式:

jps [options] [hostid]

jps工具的主要选项:

  • -q: 不输出 类名称、Jar 名称 和传入 main 方法的 参数;
  • -l: 输出 main 类或 Jar 的 全限定名称;
  • -m: 输出传入 main 方法的 参数;
  • -v: 输出传入 JVM 的参数

2. jstat-虚拟机统计信息监控工具

       jstat 是用于识别 虚拟机 各种 运行状态信息 的命令行工具。它可以显示 本地 或者 远程虚拟机 进程中的 类装载、内存、垃圾收集、jit 编译 等运行数据。
jps命令格式:

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

option 参数含义

  • -t:可以在打印的列加上 timestamp 列,用于显示系统运行的时间。
  • -h 可以在 周期性数据 的时候,可以在指定输出多少行以后输出一次 表头
    vmid:进程ID
    lines: 表头 与 表头 的间隔行数。
    interval: 执行每次的 间隔时间,单位为 毫秒
    count: 用于指定输出记录的 次数,缺省则会一直打印。

option 值的选项

  • class: 显示 类加载 ClassLoad 的相关信息;
  • compiler: 显示 JIT 编译 的相关信息;
  • gc: 显示和 gc相关的 堆信息;
  • gccapacity: 显示 各个代 的 容量 以及 使用情况;
  • gcmetacapacity: 显示 元空间metaspace 的大小;
  • gcnew: 显示 新生代 信息; gcnewcapacity: 显示 新生代大小 和 使用情况;
  • gcold: 显示 老年代 和 永久代 的信息;
  • gcoldcapacity: 显示 老年代 的大小;
  • gcutil: 显示垃圾回收信息;
  • gccause: 显示 垃圾回收 的相关信息(同 -gcutil),同时显示 最后一次 或 当前 正在发生的垃圾回收的诱
  • printcompilation: 输出 JIT 编译 的方法信息

查看GC信息
这里写图片描述
       其中S0,S1表示新生代两个Survivor区,E代表的是新生代的 Eden区,C的 意思是容量,u表示已经使用的意思,O表示 的老年代,M表示方法区。F和Y则 表示 fullGC和 minorGC(即年轻代GC)

3.jinfo配置信息查看工具
       这个命令作用是实时查看和调整 虚拟机运行参数

jinfo 命令格式
jinfo [-options] <pid>

4.jmp 内存映射工具
该 命令主要是来 查看内存使用的详细信息
命令格式
jmap [-options] <pid>
选项参数的意思:
-heap:显示 Java堆中的详细信息
-histo: 显示对象的统计 消息
-clstats:显示 类加载 的统计信息

显示java对中的 详细信息
jmap -heap 2438
这里写图片描述

5.jstack 堆栈跟踪工具
     该命令用于生成 java 虚拟机当前时刻的 线程快照。线程快照 是当前 java 虚拟机内 每一条线程 正在执行的 方法堆栈 的 集合。生成线程快照的主要目的是定位线程出现 长时间停顿 的原因,如 线程间死锁、死循环、请求外部资源 导致的 长时间等待 等等
命令格式:
jstack [-options] <pid>
option值选项:

  • f 当正常输出请求 不被响应 时,强制输出 线程堆栈
  • l 输出锁信息
  • m显示C++堆栈

    显示当前线程快照并显示锁信息
    jstack -l 2438
    这里写图片描述
    prio:线程的优先级
    tid:线程id
    nid:操作系统映射的线程id, 非常关键,后面再使用jstack时补充;
    0x00007fbdf1920000:表示线程栈的起始地址

参考

《深入理解Java虚拟机》

猜你喜欢

转载自blog.csdn.net/the_one_and_only/article/details/81711253