性能监控与故障处理工具

内容纲要

JVM监控工具的作用

  • 对jvm运行期间的内部情况进行监控,比如:对jvm参数、CPU、内存、堆等信息的查看
  • 辅助进行性能调优
  • 辅助解决应用运行时的一些问题,比如:OutOfMemoryError、内存泄露、线程死锁、锁争用、Java进程消耗CPU过高等等

命令行工具

jps

  • jps(JVM Process Status Tool) : 主要用来输出JVM中运行的进程状态信息,语法格式如下: jps [options] [hostid]
  • hostid字符串的语法与UR的语法基本一致:[protocol:][//]hostname][:port][/servername] , 如果不指定hostid ,默认为当前主机或服务器。

jinfo

  • 打印给定进程或核心文件或远程调试服务器的配置信息。语法格式: jinfo [ option] pid #指定进程号(pid)的进程
    jinfo
    打印给定进程或核心文件或远程调试服务器的配置信息。语
    法格式: jinfo [ option] pid #指定进程号(pid)的进程

jstack

  • jstack主要用来查看某个Java进程内的线程堆栈信息。语法格式如下: jstack [option] pid
  • jstack [option] executable core
  • jstack [option] [server-id@]remote-hostname-or-ip

jmap

  • jmap用来查看堆内存使用状况,语法格式如下jmap[option] pid
  • jmap [option] executable core
  • jmap [option] [server-id@]remote-hostname-or-ip

jstat

  • JVM统计监测工具,查看各个区内存和GC的情况
  • 语法格式如下: jstat [ generalOption| outputOptions vmid [interval[s|ms] [count]]]

jstated

  • 虚拟机的jstat守护进程, 主要用于监控JVM的创建与终止,并提供一个接口,以允许远程监视工具附加到在本地系统上运行的JVM

jcmd

  • JVM诊断命令工具,将诊断命令请求发送到正在运行的Java虚拟机,比如可以用来导出堆,查看java进程,导出线程信息,执行GC等

图形化工具

jconsole

  • 一个用于监视Java虚拟机的符合JMX的图形工具。它可以监视本地和远程JVM ,还可以监视和管理应用程序.

jmc

  • jmc ( JDK Mission Control ) Java任务控制( JMC )客户端包括用于监视和管理Java应用程序的工具,而不会引入通常与这些类型的工具相关联的性能开销(应用上线初期,使用jmc监控一段时间的,运行情况,并且记录下来,作为查找问题解决问题的辅助手段)
  • 下载地址(1.8自带):https://www.oracle.com/java/technologies/javase-downloads.html
  • JFR需要JDK的商业证书,需要解锁jdk的商业特性,例如:jcmd 1152 VM.unlock commercial features
  • 可以直接使用命令行来启动JFR ,例如: jcmd 41250JFR.start delay= 10s duration=1m filename=. /Users/cc/Desktop/log.jfr

VisualVM

  • 一个图形工具,它提供有关在Java虚拟机中运行的基于Java技术的应用程序的详细信息
  • Java VisualVM提供内存和CPU分析, 堆转储分析,内存泄漏检测,访问MBean和垃圾回收。
  • Jmc作长时间的飞行记录,使用VisualVM作为实时查看
  • 下载地址(1.8自带): https://visualvm.github.io/download.html
THE END
分享
二维码
< <上一篇
下一篇>>