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

内存溢出问题排查

作者: 裂开的汤圆 | 来源:发表于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