分析Tomcat内存溢出

最近,线上生产系统突然频繁的 JVM 内存报警!但本系统近期内并没有上线改动!

为了能查清内存报警的原因,使用 Eclipse Memory Analyzer tool(MAT)对 JVM Dump 文件进行了分析!

1. 生成 dump 文件

用 jmap 生产 dump 文件

jmap -dump:format=b,file=HeapDump.bin <pid>

2. MAT 安装与介绍

下载地址:http://www.eclipse.org/mat/downloads.php

通过 MAT 打开 dump 出来的内存文件,打开后如下图:

This chapter requires login to view full content. You are viewing a preview.

Login to View Full Content

Course Curriculum

3

框架与 I/O:Spring、Netty 与 Web 容器

理解 Spring Boot 自动装配、AOP 与事务原理,掌握 Netty Reactor 模型及 Tomcat 连接处理机制,构建高内聚、易扩展的应用服务层。
4

高性能中间件:消息、缓存与存储

熟练运用 MySQL 索引/事务、Redis 缓存策略、Kafka/RocketMQ 消息可靠性,以及 ZooKeeper 分布式协调,搭建稳定、解耦的分布式数据底座。
6

云原生:容器化、可观测性与工程效能

通过 Docker/K8s 实现弹性部署,集成 Metrics/Logs/Traces 构建可观测体系,推动 DevOps 与自动化,让架构在云上持续交付与进化。