JVM调试命令与调试工具详解
目录
- 一、JDK自带命令
- 1、jps
- 2、jstat(FullGC频繁解决方案)
- 3、jmap
- 4、jhat
- 5、jstack(cpu占用高解决方案)
- 6、jinfo
- 二、JDK的可视化工具JConsole
- 1、JConsole
- 2、VisualVM
一、JDK自带命令
Sun JDK监控和故障处理命令如:
1、jps
JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。
JSP命令格式:
jps [ options ] [ hostid ] 扩展参数:jps -l;jps -mlv;
各参数说明如下:
2、jstat(FullGC频繁解决方案)
JVM statistics Monitoring,用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
jstat命令格式:
jstat [ option vmid [interval[s|ms] [count]] ] jstat -gc pid 1000 10 查看当前pid使用jvm堆栈空间的内存使用情况,每1000豪秒,共打印10次 jstat -gcutil pid 1000 10 内存百分比
3、jmap
JVM Memory Map,用于生成heap dump文件。
jmap命令格式:
jmap [ option ] vmid
4、jhat
JVM Heap Analysis Tool,与jmap搭配使用,用来分析jmap生成的dump,该命令解析 Java 堆转储文件并启动 Web 服务器,生成dump的分析结果后,可以在浏览器中查看。
使用案例:
1. 导出dump信息到a.bin文件
2. 启动jhat进行分析文件
5、jstack(cpu占用高解决方案)
用于生成虚拟机当前时刻的线程快照(一般称为threadhttp://www.devze.comdump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈集合,生成线程快照的目的通常是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间挂起等,都是导致线程长时间停顿的常见原因。
jstack命令格式:
jstack [ option ] vimd
6、jinfo
JVM Configuration info,用于实时查看和调整虚拟机运行参数。
jinfo命令格式:
主要介绍-flag参数,如果想查看一个已经运行的java程序的虚拟机参数值
jinfo [ option ] pi编程客栈d $ jinfo -flag MaxMetASPaceSize 962 -XX:MaxMetaspaceSize=18446744073709547520
二、JDK的可视化工具JConsole
1、JConsole
JConsole(Java Monitoring and Management Console)是一种基JMX(Java Management Extensions,即Java管理扩展)的可视化监视、管理工具。
通过JDK/bin目录下的“jconsole.exhttp://www.devze.come”启动JConsole后,将自动搜索出本机运行的所有虚拟机进程。
2、VisualVM
VisualVM是更常用的可视化监控工具,它本身还具有插件扩展功能,因此功能非常强大,目前使用非常多。
需要先说明的是一些安装上的问题,虽然安装好jdk之后是会有一个VisualVM的程序在jdk的bin目录下,但是不建议使用jdk提供的这个,建议直接去官网下载最新的版本使用。
下载:
VisualVM: Download
插件下载:
VisualVM: Pluphpgins Centers
到此这篇关于JVM调试命令与调试工具的文章就介绍到这了,更多相关JVM调试命令内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.cppcns.cphpom)!
精彩评论