性能监控与故障处理工具
内容纲要
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
共有 0 条评论