jinfo 选项:
选项 作用-flag <name> 显示指定 name 的虚拟机参数
-flag [+|-]<name> 启用或禁用指定 name 的虚拟机参数
-flag <name>=<value> 设置指定 name 的虚拟机参数值
-flags 显示所有的虚拟机参数
-sysprops 显示虚拟机进程的系统变量,即 System.getProperties() 的内容
无 显示所有虚拟机参数及系统变量
4、jmap:Java 内存映像工具
jmap 作用:
主要用于生成堆转储快照(一般称为 heapdump 或 dump 文件)。除此之外,还可以查询 finalize 执行队列、Java 堆和永久代的详细信息。
jmap 命令格式:
jmap [option] <vmid>option:选项。
vmid:虚拟机进程唯一 ID。
jmap 执行样例:
root@█████████:~# jmap -dump:format=b,file=test.bin 20498 Dumping heap to /root/test.bin ... Heap dump file createdjmap 选项:
选项 作用-dump 生成 Java 堆转储快照。格式为:-dump:[live,]format=b,file=<filename>,live 子参数表示是否只 dump 出存活的对象
-finalizerinfo 显示在 F-Queue 中等待 Finalizer 线程执行 finalize 方法的对象
-heap 显示 Java 堆详细信息,如使用哪种回收器、参数配置、分代状况等
-histo 显示堆中对象统计信息,包括类、实例数量、合计容量
-permstat 以 ClassLoader 为统计口径显示永久代内存状况,JDK1.8 改为 -clstats
-F 当虚拟机进程对 -dump 选项没有响应时,可使用该选项强制生成 dump 快照
5、jhat:虚拟机堆转储快照分析工具
jhat 作用:
用于分析 jmap 生成地堆转储快照。jhat 内置了一个微型的 HTTP/HTML 服务器,生成 dump 文件分析结果后,可在浏览器中查看。
jhat 命令格式:
jhat [option] <file>option:选项。
file:堆转储快照文件。
jhat 执行样例:
root@█████████:~# jhat test.bin Reading from test.bin... Dump file created Tue Dec 17 21:49:26 CST 2019 Snapshot read, resolving... Resolving 979375 objects... Chasing references, expect 195 dots................................................................................................................................................................................................... Eliminating duplicate references................................................................................................................................................................................................... Snapshot resolved. Started HTTP server on port 7000 Server is ready.在浏览器中输入 地址:7000 即可查看分析结果。
6、jstack:Java 堆栈跟踪工具jstack 作用:
用于生成虚拟机当前时刻的线程快照(一般称为 threaddump 或 javacore 文件)。线程快照是当前虚拟机内每一条线程正在执行的方法堆栈的集合。
生成线程快照的主要目的是定位线程出现长时间停顿的原因。当线程出现停顿时,通过 jstack 查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待着什么资源。
jstack 命令格式:
jstack [option] <vmid>option:选项。
vmid:虚拟机进程唯一 ID。
jstack 执行样例(部分结果):
root@█████████:~# jstack -l 20498 2019-12-17 22:08:31 Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.141-b15 mixed mode): "Attach Listener" #7966 daemon prio=9 os_prio=0 tid=0x00007f0a54037800 nid=0xf15 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None ...jstack 选项:
选项 作用-F 当正常输出的请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 如果调用到本地方法的话,可以显示 C/C++ 的堆栈
二、JDK的可视化工具
JDK 提供了两个功能强大的可视化工具:JConsole 和 VisualVM。
1、JConsole:Java 监视与管理控制台 (1)启动 JConsole