`
44424742
  • 浏览: 232362 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

jmap读取

阅读更多

jmap Memory Map 2010年08月11日

  jmap能够打印给定的jvm过程或远程debug服务的共享对象的内存映射图或者具体的heap内存信息. 如果给定的jvm是运行在64位模式,那么你须要指定-J-d64参数,例如: jmap -J-d64 -heap pid

  jmap在windows平台上,只能使用的情势如下:

  jmap -dump: pid

  跟

  jmap -histo[:live] pid

  jmap的命令如下:

  jmap [ option ] pid

  jmap [ option ] executable core

  jmap [ option ] [server-id@]remote-hostname-or-IP

  parameters

  options

  打印jvm中加载的每个共享对象,起始地址,映射的内存大小,共享对象文件的全门路.

  -dump:[live,]format=b,file=

  输出jvm的heap内容到文件,并使用hprof二进制形式. live子选项假如指定,儿童故事,那么只输出活的对象到文件.

  -finalizerinfo

  打印正等候回收的对象的信息

  -histo[:live]

  打印每个class的实例数目,内存占用,儿童故事,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

  -permstat

  打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,山寨大王G-Five跻身全球前十大手机厂商 - 博文预览,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来.

  -F

  强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效.

  -h | -help

  打印辅助信息

  -J

  传递参数给jmap启动的jvm.

  pid

  需要被打印配相信息的java进程id,创业与打工的区别 - 博文预览,可以用jps查问.

  executable

  Java executable from which the core dump was produced.

  (可能是发生core dump的java可履行程序)

  core

  将被打印信息的core dump文件

  remote-hostname-or-IP

  远程debug服务的主机名或ip

  server-id

  独一id,如果一台主机上多个远程debug服务

  最近在搞64位系统的进级,搞了一台放到恰是环境的pool中,在本来的32位下,我们定义的heap size是1024m,儿童故事,其中permsize是96m,实用70m左右.同样的配置在64位jvm里,Perm Generation直接暴掉,于是扩展至128m,适用稳固在108m左右,这里的起因是64位体系下,object占用了更大的内存, 10分钟让你明白中国为何物价高、内需拉不上去 - 博文预览,可以用 -XX:+UseCompressedOops参数紧缩(java6似乎还不支撑),然而咱们不应用.

  经由前多少天的运行,系统还算稳定(经过上午,下战书两个网上流量顶峰期).昨天宣布后,我在晚上19点半左右enable这台测试机,早上到了公司,察看了一下运行情形.10点中左右发明jvm异样.

  jstat -gcutil 22671 1000 1000

  显示如下:

  1234567

  S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 0.00 100.00 100.00 84.71 17079 392.748 586 960.447 1353.195 0.00 0.00 100.00 100.00 84.71 17079 392.748 587 962.212 1354.960 0.00 0.00 100.00 100.00 84.71 17079 392.748 587 962.212 1354.960 0.00 0.00 100.00 100.00 84.71 17079 392.748 588 963.992 1356.740 0.00 0.00 100.00 100.00 84.71 17079 392.748 588 963.992 1356.740 0.00 0.00 100.00 100.00 84.58 17079 392.748 589 965.907 1358.655

  jmap 22671

  显示如下:

  1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

  Attaching to process ID 22671, please wait...Debugger attached successfully.Server compiler detected.JVM version is 10.0-b23 using thread-local object allocation.Parallel GC with 8 thread(s) Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 1073741824 (1024.0MB) NewSize = 268435456 (256.0MB) MaxNewSize = 268435456 (256.0MB) OldSize = 5439488 (5.1875MB) NewRatio = 2 SurvivorRatio = 8 PermSize = 134217728 (128.0MB) MaxPermSize = 134217728 (128.0MB) Heap Usage:PS Young GenerationEden Space: capacity = 126615552 (120.75MB) used = 126615552 (120.75MB) free = 0 (0.0MB) 100.0% usedFrom Space: capacity = 52494336 (50.0625MB) used = 0 (0.0MB) free = 52494336 (50.0625MB) 0.0% usedTo Space: capacity = 70909952 (67.625MB) used = 0 (0.0MB) free = 70909952 (67.625MB) 0.0% usedPS Old Generation capacity = 805306368 (768.0MB) used = 804698024 (767.4198379516602MB) free = 608344 (0.5801620483398438MB) 99.92445806662242% usedPS Perm Generation capacity = 134217728 (128.0MB) used = 113520112 (108.26121520996094MB) free = 20697616 (19.738784790039062MB) 84.57907438278198% used

  在上面显示的数据中,full gc频繁产生,占用了大批的资源

  eden Space和Old Generation的heap多已经使用100%

  于是dump jvm

  jmap -dump:file=dump_run.hprof 22671

分享到:
评论

相关推荐

    jmap工具~MA.zip

    Eclipse Memory Analyzer Tool (MAT) 是一个强大的内存分析工具,可以读取由jmap生成的.hprof文件,进行详细的内存分析。它能帮助我们找到内存泄漏的根源,通过查看支配树、计算DOM大小、查找可疑的大对象等特性,...

    JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc

    它不仅能读取当前运行进程的堆栈信息,还能解析由程序崩溃时产生的core文件,获取到崩溃时的Java堆栈和本地堆栈信息,这对于定位问题根源非常有帮助。`jstack` 目前仅在Solaris和Linux的JDK版本中可用。 #### 2. ...

    关于Poi读取Excel引发内存溢出问题的解决方法

    ./jmap -dump:format=b,file=heap.hprof pid ``` 分析工具(如 Eclipse Memory Analysis Tool)显示,`XSSFWorkbook` 在加载文件时创建了过多的对象。 ### 解决方案 #### 1. 事件模型(EventModel) 为了解决...

    高效的 Jmap:边缘指示器对噪声和纹理具有鲁棒性-matlab开发

    读取图像: img = imread('老虎.jpg'); 3.Jmap计算: Jmap = cmp_Jmap(img, 3, 7); 4.显示图像: subplot(1, 2, 1), imshow(img, []), title("原始图像"); subplot(1, 2, 2), imshow(Jmap, []), title("Jmap"); 参考...

    jvm日志解读

    在实际应用中,我们不仅要学会读取日志,还需要懂得如何调整JVM参数以优化性能。例如,适当增加堆内存(-Xmx)可以防止Out of Memory错误,设置合理的垃圾收集策略(如CMS或G1)可以减少停顿时间。同时,理解JVM的内存...

    MemoryAnalyzer-1.7.0.20170613-win32.win32.x86

    MAT可以直接读取这些文件,进行深入的分析。 MAT提供了多种分析视图,如"对象分配轨迹"、"支配树"、"饼图"和"概览"等,这些视图从不同角度揭示了内存的使用情况。其中,“支配树”视图是寻找内存泄漏的关键,它显示...

    heapdump分析工具

    这类工具通常需要与JVM配合使用,通过读取heapdump文件,提供更便捷的分析界面和功能。 `readme.zip`可能包含了关于如何使用这些工具的说明文档,包括如何生成heapdump,如何解析文件,以及如何解释分析结果。解压...

    Java虚拟机(1)

    1. **加载**:ClassLoader读取.class文件并构建Class对象,这个过程包括从文件系统或网络中找到指定的.class文件,读取字节流,并将其转换为运行时数据结构。 2. **验证**:确保加载的类符合Java语言规范,不包含...

    class的实例在JVM中的内部表示

    加载器首先查找并读取二进制数据,然后进行验证,确保代码的安全性。接下来,为类分配内存并初始化零值,然后解析类中的符号引用为直接引用。最后,执行类的初始化方法,如静态块。 `Class`对象自身也是一个对象,...

    lattesHyperjaxb3:将 latte xml 转换为可通过 Hibernate 访问的关系数据库数据

    读取实例表单 DB 使用 Hibernate ##DOC: ##笔记: 在运行项目时,检查所有表是否都被填充以确保数据和模式链接良好总是很好的。 VM args:Xms 指定初始内存分配池,Xmx 指定 Java 虚拟机 (JVM) 的最大内存...

    阿里后端技术分享 大型系统架构优化与设计-天猫后端技术架构优化实践 共28页.pdf

    缓存的使用尤其关键,通过动静分离和适当的缓存策略(如集中式缓存与本地缓存的结合),解决了数据读取的热点问题,减少了网络延迟,提升了用户体验。 在并发与异步化的讨论中,强调了单元划分、依赖编排、并行粒度...

    Eclipse Memory Analyzer内存映像分析工具

    这通常通过在运行中的Java应用中触发堆转储来实现,例如通过JVM参数`-XX:+HeapDumpOnOutOfMemoryError`配置,当出现内存溢出错误时自动导出堆内存快照,或者手动通过`jmap`命令在运行的应用上执行堆转储。...

    hadoop杀僵尸节点

    4. **分析内存占用**:对筛选出的PID,使用`jmap`命令获取进程堆内存快照,进一步分析这些进程的内存使用情况,判断是否属于异常占用资源的情况。 5. **终止异常进程**:对于确定为异常的进程,脚本通过`ps`命令...

    JavaDump分析

    堆Dump则更进一步,它不仅包含线程信息,还包括所有堆对象的状态,但其格式为二进制,读取和分析的难度相对较高。 线程Dump能够直观地展示线程的堆栈信息,如线程名称、ID、状态、优先级、堆栈跟踪等。开发者通过...

    ibm的java内存泄漏检测工具

    当系统出现问题时,我们可以通过生成heap dump文件(如通过JVM的`jmap`命令或IBM的`dumpheap`工具),然后使用`HeapAnalyzer`来分析这个dump文件。 分析过程通常包括以下几个步骤: 1. **生成堆转储文件**:当发现...

    Java面试宝典汇总 .docx

    面试者需了解内存模型(堆、栈、方法区、本地方法栈等)、垃圾收集机制(GC算法、内存分区、Full GC触发条件),以及如何通过JVM调优工具(如jmap、jstat、jconsole等)分析和优化应用性能。 五、Web 在网络通讯...

    jdk-19-windows-x64-bin.msi

    这个安装包,"jdk-19_windows-x64_bin.msi",包含了开发Java应用程序所需的所有组件,包括Java编译器(javac)、Java运行时环境(JRE)以及各种开发工具,如Java调试器(jdb)、性能分析器(jmap)、JVM诊断工具...

    MemoryAnalyzer-1.9.1.win32.x86_64

    MAT能够读取这种文件,展示详细的内存使用信息,包括对象数量、大小以及引用关系。 2. **对象统计**:MAT提供了一种直观的方式来查看堆中各个类的对象数量和占用的总内存。这有助于识别可能造成内存泄漏的大型对象...

    JVM基础-超清文字版.pdf

    - jinfo、jmap、jhat、jstack等命令行工具:用于查看JVM配置、内存映射、堆转储等。 通过学习《JVM基础-超清文字版.pdf》,开发者可以更好地理解JVM的工作原理,从而编写出更高效、更稳定的Java程序。了解JVM的...

    MemoryAnalyzer分析dump文件

    MAT将读取文件并对其进行解析,这个过程可能需要一段时间,尤其是对于大型的heap dump文件。 MAT的主要功能模块包括: 1. **Leak Suspects Report**:这是MAT的核心报告之一,它会自动分析dump文件,并列出可能...

Global site tag (gtag.js) - Google Analytics