内存泄露排查流程

一、创建内存泄露案例

package com.mxl.controller;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

@RestController
@RequestMapping(value = "/demo")
@Slf4j
public class DemoController {
    private static List<Object> list = new LinkedList<>();
    @GetMapping("/leak")
    public String leak(){
        for (int index =0;index<1000; index++){
            UserInfo userInfo = new UserInfo();
            list.add(userInfo);
        }
        return "success";
    }
    
    @Data
    class UserInfo{
        private String username;
    }
}

二、排查流程

动态监控内存

# 每隔3秒执行一次
vmstat 3 

排查发现出现内容泄露

排查jvm内存分配情况(内存分配合理)

jmap -heap 进程id

排查是否存在异常未清除类

jmap -histo:live  <pid>|sort -k 2 -g -r|less

排查回收对象情况

jmap -finalizerinfo 进程id

下载堆内存

jmap -dump:live,format=b,file=myjmapfile.hprof  进程id

堆分析工具

虚拟机堆转储快照分析工具

使用jdk的 jvisualvm工具(建议采用):

  1. 打开命令行或终端窗口。
  2. 输入 

jvisualvm 并按 Enter 键启动 

  1. 在 jvisualvm 中,选择 "File" -> "Load...",然后选择要打开的 HPROF 文件。
  2. 点击 "Open" 或 "OK" 来加载并分析 HPROF 文件。

相关推荐

  1. 【C++】内存泄漏排查

    2024-03-29 12:00:05       60 阅读
  2. Python内存泄漏排查

    2024-03-29 12:00:05       19 阅读
  3. windbg托管内存泄漏排查

    2024-03-29 12:00:05       42 阅读
  4. linux内存泄漏排查方法

    2024-03-29 12:00:05       31 阅读
  5. 使用Visual Leak Detector排查内存泄漏

    2024-03-29 12:00:05       53 阅读
  6. 内存泄露与解决

    2024-03-29 12:00:05       43 阅读
  7. ThreadLocal-内存泄露问题

    2024-03-29 12:00:05       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 12:00:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 12:00:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 12:00:05       82 阅读
  4. Python语言-面向对象

    2024-03-29 12:00:05       91 阅读

热门阅读

  1. 查看docker中mysql是否开启

    2024-03-29 12:00:05       35 阅读
  2. skywalking

    2024-03-29 12:00:05       40 阅读
  3. C#WPF控件TextBlock详解

    2024-03-29 12:00:05       39 阅读
  4. 循环神经网络

    2024-03-29 12:00:05       29 阅读
  5. 项目 npm run dev报错

    2024-03-29 12:00:05       39 阅读
  6. 数字孪生之数据

    2024-03-29 12:00:05       40 阅读
  7. 亚远景科技-浅谈ASPICE标准和ASPICE认证/评估

    2024-03-29 12:00:05       47 阅读
  8. 图片文件格式的文件头标识

    2024-03-29 12:00:05       45 阅读
  9. 【PyTorch Tensor】PyTorch Tensor编程教学:基础与实战

    2024-03-29 12:00:05       47 阅读
  10. python爬虫-bs4

    2024-03-29 12:00:05       38 阅读