jmap查看内存使用情况与生成heapdump

摘要:
Jmap不仅可以生成转储文件,还可以查询finalize执行队列、Java堆和永久生成的详细信息,例如当前使用率、当前使用的收集器等。当执行Jmap histo:live命令时,JVM将首先触发gc,然后进行统计。jmap histo:live11808|grepStringBuffer查询类名包含StringBuffer的信息。jmap histo:live11808|grepStringBuffer˃histo。txt将信息保存到历史记录中。txt文件
jmap
JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。 jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。
 
jmap查看内存使用情况与生成heapdump第1张

参数

option:选项参数,不可同时使用多个选项参数

pid:java进程id,命令ps -ef | grep java获取

executable:产生核心dump的java可执行文件

core:需要打印配置信息的核心文件

remote-hostname-or-ip:远程调试的主机名或ip

server-id:可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器

 

options参数

heap : 显示Java堆详细信息
histo : 显示堆中对象的统计信息
permstat :Java堆内存的永久保存区域的类加载器的统计信息
finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
dump : 生成堆转储快照
F : 当-dump没有响应时,强制生成dump快照
 

示例

 

-dump

dump堆到文件,format指定输出格式,live指明是活着的对象,file指定文件名

jmap查看内存使用情况与生成heapdump第2张

 

-heap

打印heap的概要信息,GC使用的算法,heap的配置及使用情况,可以用此来判断内存目前的使用情况以及垃圾回收情况.

jmap查看内存使用情况与生成heapdump第3张

 

-finalizerinfo   

打印等待回收的对象信息

jmap查看内存使用情况与生成heapdump第4张

 

-histo

打印堆的对象统计,包括对象数、内存大小等等。jmap -histo:live 这个命令执行,JVM会先触发gc,然后再统计信息

jmap查看内存使用情况与生成heapdump第5张

 

jmap -histo:live 11808 | grep StringBuffer 查询类名包含StringBuffer的信息

jmap -histo:live 11808 | grep StringBuffer > histo.txt 保存信息到histo.txt文件

 

 

 

免责声明:文章转载自《jmap查看内存使用情况与生成heapdump》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Logistic模型原理详解以及Python项目实现Ubuntu 搭建简单的git server下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java 内存查看工具

业界有很多强大的java profile的工具,比如Jporfiler,yourkit,这些收费的东西我就不想说了,想说的是,其实java自己就提供了很多内存监控的小工具,下面列举的工具只是一小部分,仔细研究下jdk的工具,还是蛮有意思的呢:) 1:gc日志输出 在jvm启动参数中加入 -XX:+PrintGC -XX:+PrintGCDetails -...

JVM:查看java内存情况命令

  jmap (linux下特有,也是很常用的一个命令)   观察运行中的jvm物理内存的占用情况。   参数如下:   -heap :打印jvm heap的情况   -histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。   -histo:live : 同上,但是只答应存活对象的情况   -permstat: 打印pe...

Java命令学习系列(三)——Jmap

jmap是JDK自带的工具软件,主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。可以使用jmap生成Heap Dump。在Java命令学习系列(零)——常见命令及Java Dump介绍和Java命令学习系列(二)——Jstack中分别有关于Java Dump以及线程 Dump的介绍。这篇文章主要介绍Java的堆Du...

java命令--jmap命令使用

jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。 jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。可以使用...

JVM内存状况查看方法和分析工具

Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及调优程序的性能。下面介绍几种常用的免费工具,其中知名的有JProfiler 等。   1. 输出GC日志   输出GC日志对于跟踪分析GC的状况来说,无疑是最...

JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)

性能分析工具jstatjmapjhatjstack 前提概要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测。...