dmp文件改后缀,dmp文件用什么打开

首页 > 经验 > 作者:YD1662022-10-29 13:32:05

JDK在安装的时候会提供一些性能分析、故障诊断、JVM监控之类的工具,了解这些工具对我们分析JVM内存、JVM调优有一定的帮助,本篇文章来学习一下。

监控类工具jps

jps(JVM Process Status)是查看正在运行的虚拟机进程的工具。jps能获取进程id,所以会被经常使用。在 Linux 中,一般自带了 OpenJdk,一般情况下 JPS 等命令不能用,要么选择去安装 JPS 等插件,要么把 OpenJdk 卸载,重新安装 Oracle 的 JDK。

语法:jps [ options ] [ hostid ]

参数

含义

-q

只显示进程

-m

输出主函数传入的参数

-l

输出应用程序主类完整 package 名称或 jar 完整名称.

-v

列出 jvm 参数

-V

只生成本地JVM标识符列表

-J

向JVM传递参数。例如:-J-Xms48m,设置JVM初始内存为48m

测试:

dmp文件改后缀,dmp文件用什么打开(1)

dmp文件改后缀,dmp文件用什么打开(2)

57312 JvmToolsApplication 这个是我运行的一个用于测试的springboot项目。

jstat

jstat(JVM Statistics Monitoring Tool )是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT 编译等运行数据,在没有 GUI 图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。

语法: jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]

参数

含义

-class

显示类加载器行为信息

-compiler

显示有关JVM实时编译器行为的统计信息

-gc

显示有关GC堆行为的统计信息。

-gccapacity

显示各分区大小

-gccause

显示最近一次 GC 统计信息和原因

-gcnew

显示新生代行为的统计信息。

-gcnewcapacity

显示新生代内存大小

-gcold

显示老年代统计信息

-gcoldcapacity

显示老年代内存大小

-gcmetacapacity

显示元空间内存大小

-gcutil

显示GC统计汇总信息

-printcompilation

显示HotSpot 编译统计信息

outputOptions参数后面还能加以下可选参数:

- -h n:每n个样本(输出行)显示一个列标题,默认值为0,显示列标题的第一行数据。 - -t:第一列显示为时间戳 - -J:向应用程序传递启动参数 复制代码

测试:

  1. 统计gc信息 57312 是测试项目JvmToolsApplication在虚拟机中的进程id。
  2. jstat -gc 57312 100 10这个命令是在100ms内获取10次gc统计信息 结果中的列分别代表以下意思:
  3. S0C:第一个幸存区(From 区)的大小
  4. S1C:第二个幸存区(To 区)的大小
  5. S0U:第一个幸存区的使用大小
  6. S1U:第二个幸存区的使用大小
  7. EC:伊甸园(Eden)区的大小
  8. EU:伊甸园(Eden)区的使用大小
  9. OC:老年代大小
  10. OU:老年代使用大小
  11. MC:方法区大小
  12. MU:方法区使用大小
  13. CCSC:压缩类空间大小
  14. CCSU:压缩类空间使用大小
  15. YGC:年轻代垃圾回收次数
  16. YGCT:年轻代垃圾回收消耗时间
  17. FGC:老年代垃圾回收次数
  18. FGCT:老年代垃圾回收消耗时间
  19. GCT:垃圾回收消耗总时间
故障诊断类工具jinfo

jinfo(Configuration Info for java) 可以实时地查看和调整虚拟机的各项参数。jinfo不仅能获取到虚拟机命令行参数,还能获取到系统参数。

语法:

option:

测试:

通过 jinfo 命令,我们可以在生产上临时打开一下 GC日志或者进行一些数据的配置(不需要重启应用条件下),也是我们去排查问题的一个关键命令。

jmap

jmap(Memory Map for Java) 打印给定进程或远程调试服务器的共享对象内存映射或堆内存详细信息。jmap也可用于生成堆转储快照(一般称为 heapdump 或 dump 文件),除此之外它还可以查询 finalize 执行队列、Java 堆和永 久代的详细信息,如空间使用率、当前用的是哪种收集器等。和 jinfo 命令一样,jmap 有不少功能在 Windows 平台下都是受限的,除了生成 dump 文件的 -dump 选项和用于查看每个类的实例、空间占用统计的-histo 选项在所有操作系统都提供之外,其余选项都只能在 Linux/Solaris 下使用。

语法:jmap [ options ] pid

options 有如下选项:

Heap Configuration: ##堆配置情况,也就是 JVM 参数配置的结果[平常说的 tomcat 配置 JVM 参数,就是在配置这些] MinHeapFreeRatio = 0 //最小堆使用比例 MaxHeapFreeRatio = 100 //最大堆可用比例 MaxHeapSize = 4261412864 (4064.0MB) //最大堆空间大小 NewSize = 88604672 (84.5MB) ) //新生代分配大小 MaxNewSize = 1420296192 (1354.5MB) //最大可新生代分配大小 OldSize = 177733632 (169.5MB) //老年代大小 NewRatio = 2 //新生代比例 SurvivorRatio = 6 //新生代与 suvivor 的比例 MetaspaceSize = 21807104 (20.796875MB) //元空间大小 CompressedClassSpaceSize = 1073741824 (1024.0MB) //类指针压缩空间大小 MaxMetaspaceSize = 17592186044415 MB // 最大元空间大小 G1HeapRegionSize = 0 (0.0MB) //G1收集器Region单元大小 Heap Usage: //堆内存实际的使用情况 PS Young Generation //新生代 Eden Space: //Eden 区 capacity = 66584576 (63.5MB) //Eden容量 used = 27941200 (26.646804809570312MB) //Eden区已使用大小 free = 38643376 (36.85319519042969MB) //未使用 41.96347214105561% used //使用比例 From Space: //survior1 区 capacity = 11010048 (10.5MB) used = 8497840 (8.104171752929688MB) free = 2512208 (2.3958282470703125MB) 77.18258812313988% used To Space: //survior2 区 capacity = 11010048 (10.5MB) used = 0 (0.0MB) free = 11010048 (10.5MB) 0.0% used PS Old Generation //老年代使用情况 capacity = 115867648 (110.5MB) used = 10553152 (10.06427001953125MB) free = 105314496 (100.43572998046875MB) 9.10793666925905% used 复制代码

jhat

jhat (Heap Dump Browser)可以让一个dump文件以web服务的的形式访问。

上面我们用jmap工具生成了一个dump文件,现在可以通过jhat 工具,让它再浏览器端访问到。

dmp文件改后缀,dmp文件用什么打开(3)

Server is ready表示启动成功,端口号为7000,然后在浏览器端访问http://localhost:7000/,可以看到dump文件内容

dmp文件改后缀,dmp文件用什么打开(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.