1 确定线上oom对应的配置dump的文件的获取
不管是线上服务器还是本地服务器 出现oom的,首先获取 配置dump文件输出路径 (最快解是和运维沟通配置并找出文件)

2 新手可模拟场景如下

启动idea:模拟配置vm参数 :-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/szy/Desktop/dump/
启动idea模拟代码:

/**
    VM Args:
    //这两个参数保证了堆中的可分配内存固定为20M
    -Xms20m
    -Xmx20m  
    //文件生成的位置,作则生成在桌面的一个目录
    -XX:+HeapDumpOnOutOfMemoryError //文件生成的位置,作则生成在桌面的一个目录
    //文件生成的位置,作则生成在桌面的一个目录
    -XX:HeapDumpPath=/Users/szy/Desktop/dump/ 
 */
public class HeapOOM {
    //创建一个内部类用于创建对象使用
    static class OOMObject {
    }
    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<OOMObject>();
        //无限创建对象,在堆中
        while (true) {
            list.add(new OOMObject());
        }
    }
}

2 将线上的dump的文件(或本机) 装入本机jdk 下自带的dump文件分析器  visual VM

3 以举例代码为例出现的分析结果是:

遇到内存泄漏 OOM 问题,新手定位及模拟

 

相关文章:

  • 2022-01-10
  • 2021-07-19
  • 2021-10-22
  • 2022-12-23
  • 2021-11-08
  • 2021-11-28
  • 2021-11-08
猜你喜欢
  • 2022-01-02
  • 2021-12-12
  • 2021-07-17
  • 2021-09-18
  • 2021-11-21
  • 2022-12-23
  • 2021-11-25
相关资源
相似解决方案