关于java:25-jdk监控和故障处理工具

10次阅读

共计 1493 个字符,预计需要花费 4 分钟才能阅读完成。

jdk 命令行工具

  • jps(jvm process status):查看所有 java 过程启动类、传入参数和 java 虚拟机参数等信息。

    • jps:显示虚拟机执行主类名称以及这些过程的本地虚拟机惟一 ID(Local Virtual Machine Identifier,LVMID)。
    • jps -q:只输入过程的本地虚拟机惟一 ID。
    • jps -l: 输入主类的全名,如果过程执行的是 Jar 包,输入 Jar 门路。
    • jps -v:输入虚拟机过程启动时 JVM 参数。
    • jps -m:输入传递给 Java 过程 main() 函数的参数。
  • jstat(JVM Statistics Monitoring Tool): 用于监督虚拟机各种运行状态信息的命令行工具。它能够显示虚拟机过程中的类信息、内存、垃圾收集、JIT 编译等运行数据,在没有 GUI,只提供了纯文本控制台环境的服务器上,它将是运行期间定位虚拟机性能问题的首选工具。

    • jstat 命令应用格局:
      jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
      比方 jstat -gc -h3 31736 1000 10 示意剖析过程 id 为 31736 的 gc 状况,每隔 1000ms 打印一次记录,打印 10 次进行,每 3 行后打印指标头部。
    • jstat -class vmid:显示 ClassLoader 的相干信息;
    • jstat -compiler vmid:显示 JIT 编译的相干信息;
    • jstat -gc vmid:显示与 GC 相干的堆信息;
    • jstat -gccapacity vmid:显示各个代的容量及应用状况;
    • jstat -gcnew vmid:显示新生代信息;
    • jstat -gcnewcapcacity vmid:显示新生代大小与应用状况;
    • jstat -gcold vmid:显示老年代和永恒代的行为统计,从 jdk1.8 开始, 该选项仅示意老年代,因为永恒代被移除了;
    • jstat -gcoldcapacity vmid:显示老年代的大小;
    • jstat -gcpermcapacity vmid:显示永恒代大小,从 jdk1.8 开始, 该选项不存在了,因为永恒代被移除了;
    • jstat -gcutil vmid:显示垃圾收集信息;
    • 另外,加上 - t 参数能够在输入信息上加一个 Timestamp 列,显示程序的运行工夫。
  • jinfo (Configuration Info for Java) : 输入以后 jvm 过程的全副参数和零碎属性 (第一局部是零碎的属性,第二局部是 JVM 的参数)。

    • jinfo -flag name vmid : 输入对应名称的参数的具体值。
    • 应用 jinfo 能够在不重启虚拟机的状况下,能够动静的批改 jvm 的参数。jinfo -flag [+|-]name vmid 开启或者敞开对应名称的参数。
  • jmap (Memory Map for Java) : 生成堆转储快照;
  • jhat (JVM Heap Dump Browser) : 用于剖析 heapdump 文件,它会建设一个 HTTP/HTML 服务器,让用户能够在浏览器上查看剖析后果;
  • jstack (Stack Trace for Java): 生成虚拟机以后时刻的线程快照,线程快照就是以后虚拟机内每一条线程正在执行的办法堆栈的汇合。

    • 生成线程快照的目标次要是定位线程长时间呈现进展的起因,如线程间死锁、死循环、申请内部资源导致的长时间期待等都是导致线程长时间进展的起因。线程呈现进展的时候通过 jstack 来查看各个线程的调用堆栈,就能够晓得没有响应的线程到底在后盾做些什么事件,或者在期待些什么资源。
  • 可视化剖析工具

    • jconsole 检测死锁 显示内存信息,细化到 Eden 区,survivor 区的详细情况。可强制执行 gc。
    • visual vm
正文完
 0