zoukankan      html  css  js  c++  java
  • 一次内存泄漏的定位

    记录第一次内存泄漏的定位流程


    1. 内存泄漏的发现

      在部署新代码的时候,发现某台机器历史数据异常(内存占用从平常的4G变为了6G,JVM Memory中的老年代使用占比从之前的<1G,快速增加到2.5G),由于均没有触发报警峰值,所以没有提前收到监控,算是意外发现的。

    2. 机器异常的查看

      第一次遇到这个情况,其实并不确定是因为什么,频繁youngGC,同时期的网络波动也产生的巨大的增加,就开始查看该段时间机器做了什么事情,看到有一段时间的持续网络请求,但是也不该有这么大的影响。该时间端内磁盘使用率也增加了不少,遂去机器上面看是哪里来的‘文件’。在机器上发现新增了一个叫做java.hprof的文件,大小是2.9G。经过了解,是在内存泄漏的时候产生的日志文件,并且了解到可以用MAT查看(其实之前有听过处理内存泄漏的相关分享,不过早已忘记,只能重新捡起来,这样是这个博文的动力来源)

    3. MAT分析java.hprof

      MAT下载地址为:http://www.eclipse.org/mat/downloads.php。接下来就是去搜索如何分析hprof文件。根据MAT中的提示定位到异常原因。

    4. 总结

      本次内存溢出的原因:程序中产生了一个巨大的数据(2.8G),大于JVM新生代的阈值,被保存在老年代中,。

  • 相关阅读:
    Excel透视表进阶之计算字段、计算项、切片器、页面布局
    Excel透视表进阶之排序、筛选、分组、总计与分类汇总
    Excel透视表基础之字段布局与重命名、更新、数字格式设置、空值与错误值、
    Excel透视表基础之数据源、创建、基本术语、基本操作
    NumPy基础
    Python读写Excel
    逻辑判断
    打印 PRINT
    面向对象
    循环控制
  • 原文地址:https://www.cnblogs.com/yishilin/p/11084077.html
Copyright © 2011-2022 走看看