首页 > 系统相关 >jvm内存泄露分析方法

jvm内存泄露分析方法

时间:2023-02-21 16:33:05浏览次数:52  
标签:relevant jmap 分析方法 blog pc 内存 jvm 泄露

         场景:使用监控工具发现内存使用不断增加,则有可能存在内存泄露,内存泄露可以使用jmap工具进行分析。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等,可以使用jmap生成Heap Dump。 

排查步骤如下:

1.使用top命令查看是哪个进程耗的内存比较多。通过快捷键 shift+m 对内存进行排序。

2.执行命令打印堆栈信息 堆文件为 aaa.hprof    jmap -dump:live,format=b,file=aaa.hprof 18037

3.使用mat分析工具(JDK得11以上才能使用)对步骤2打印的aaa.hprof 文件进行分析找到占用大量内存的线程。为了找到内存泄露,获取了两个堆转储文件,两个文件获取时间间隔是一天(因为内存只是小幅度增长,短时间很难发现问题)。对比两个文件的对象,通过对比后的结果可以很方便定位内存泄露。

mat使用方法:https://blog.csdn.net/lyd135364/article/details/121449969?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-121449969-blog-116278233.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-121449969-blog-116278233.pc_relevant_recovery_v2&utm_relevant_index=5

标签:relevant,jmap,分析方法,blog,pc,内存,jvm,泄露
From: https://www.cnblogs.com/Frank-guo/p/17141481.html

相关文章

  • 来一波骚操作,Java内存模型
    文章整理自博学谷狂野架构师什么是JMM并发编程领域的关键问题线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享......
  • 来一波骚操作,Java内存模型
    文章整理自博学谷狂野架构师什么是JMM并发编程领域的关键问题线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享......
  • redis探秘:选择合适的数据结构,减少80%的内存占用,这些点你get到了吗?
    ​redis作为目前最流行的nosql缓存数据库,凭借其优异的性能、丰富的数据结构已成为大部分场景下首选的缓存工具。由于redis是一个纯内存的数据库,在存放大量数据时,内存的占用......
  • 文件监听,内存溢出了
    为什么做了文件监听功能,内存溢出了?忙于做项目,现在简单贴一些代码和分析原因。项目里面有一个配置文件,做了监听,这个是放数据的。红线部分是文件修改 这个是文件监听的......
  • 内存泄漏
    避免内存泄露的几种方式记数法:使用new或者malloc时,让该数+1,delete或free时,该数-1,程序执行完打印这个计数,如果不为0则表示存在内存泄露一定要将基类的析构函数声明为虚函......
  • 用百分比显示Windows内存使用率
    在之前的篇幅​​简单聊聊AzureVM的内存指标​​里已经提过了​,Windows并没提供内置的方式来让你直接通过百分比的形式展示内存使用率,这样对于告警的设置来说就不太灵活了......
  • Java基础知识(23)- Java虚拟机(JVM)- (2) | 常用的 JVM 性能调优监控工具
    在企业级Java应用开发中,Java程序运行过程中会经常遇到内存不足、内存泄露、线程死锁、CPU高占用等问题。部分问题在日常开发中可能会被忽视或被别变通的方法绕开(比如重......
  • 性能瓶颈分析方法论
    分析性能瓶颈需要了解系统部署架构,知道瓶颈可能会发生在哪些节点上,并熟悉查看各个节点指标数据的方法。一、系统部署架构一个典型的系统部署架构,有硬件服务器,包括应用系统所......
  • Java面试宝典_君哥讲解笔记02 描述JDK、JRE、JVM之间的关系、如果main方法声明成priva
    系列文章目录文章目录​​系列文章目录​​​​java基础面试题​​​​请描述JDK、JRE、JVM之间的关系​​​​如果main方法被声明成private会怎么样呢?​​​​&和&&区别在......
  • 第四章 熟练使用有棱有角的内存
        虽然内存IC包括DRAM、SRAM、ROM等多种形式,但从外部来看,其基本机制都是一样的。    内存IC中有电源、地址信号、数据信号、控制信号等用于输入输出的......