美文网首页
内存溢出问题排查

内存溢出问题排查

作者: 裂开的汤圆 | 来源:发表于2023-10-11 01:14 被阅读0次

    启动命令

    nohup java -Xms100m -Xmx200m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/dump -jar  xxx.jar > /usr/error.log &
    
    ## 说明
    -Xms100m: 设置初始化堆内存大小100m
    -Xmx200m:设置最大可分配堆内存大小200m
    -XX:+HeapDumpOnOutOfMemoryError:在内存溢出的时候就会生成Heap dump文件
    

    模拟代码

        @RequestMapping("/outOfMemory")
        public String outOfMemory() {
            Thread thread = new Thread(() -> {
                int i = 1;
                while (true) {
                    Student student = new Student();
                    student.setStuNo(String.valueOf(i));
                    student.setStuName(i + "号学生");
                    studentList.add(student);
                    System.out.println("已添加" + i + "名学生");
                    i++;
                }
            });
            thread.start();
            return "success";
        }
    

    执行结果

    image.png

    可以看到dump文件已经生成

    解析dump文件

    直接使用idea打开dump文件

    image.png

    可以看到OutOfMemoryController下的studentList占用了190M的内存,至此问题定位完成

    相关文章

      网友评论

          本文标题:内存溢出问题排查

          本文链接:https://www.haomeiwen.com/subject/aoabbdtx.html