如何用Eclipse MAT分析Tomcat堆栈?

Debian-Like

1 前言

一个问题,一篇文章,一出故事。
以下为软件的简介,
– Eclipse MAT为Eclipse Memory Analyzer Tool的英文简写
– jmap用于生成堆转储快照(一般称为 heapdump 或 dump 文件)
– jmap支持查询堆内存使用状况,一般结合jhat命令使用
– jhat在新版本的JDK中已经不再包含,因此我们需要使用Eclipse MAT
笔者遇到Tomcat的程序需要分析堆栈,于是熟悉Eclipse MAT工具。

2 最佳实践

2.1 生成堆转储快照

sudo -u tomcat /usr/local/jdk-15.0.2/bin/jmap -dump:live,format=b,file=/tmp/tomcat-heap.hprof `pgrep -u tomcat java`

可见如下输出,

Dumping heap to /tmp/tomcat-heap.hprof ...
Heap dump file created [1723009040 bytes in 8.861 secs]

注:生成的文件“/tmp/tomcat-heap.hprof”供后面的Eclipse MAT作为分析的堆栈转存储快照文件

2.2 准备分析工具

2.2.1 下载内存分析工具

cd ~/Downloads/
wget https://mirror.kakao.com/eclipse/mat/1.14.0/rcp/MemoryAnalyzer-1.14.0.20230315-linux.gtk.x86_64.zip

2.2.2 解压内存分析工具

cd ~/Downloads/
unzip MemoryAnalyzer-1.14.0.20230315-linux.gtk.x86_64.zip

2.2.3 运行内存分析工具

cd ~/Downloads/
cd mat/
./MemoryAnalyzer

2.3 使用分析工具

单击【File】->【Open Heap Dump】
选中需要分析的“tomcat-heap.hprof”文件即可
注:具体的分析非本章重点,请自行摸索

参阅文档
============================
官方文档
————
https://eclipse.dev/mat/downloads.php

非官方文档
————
https://stackoverflow.com/questions/17278262/how-to-install-mat-in-eclipse

没有评论

发表回复

Debian-Like
如何修改Ubuntu SSSD加域用户的头像?

1 前言 一个问题,一篇文章,一出故事。 笔者的工作电脑是一部使用SSSD加域的电脑,加域的大致过程 …

Debian-Like
如何将远程主机端口经加密隧道映射到本地主机?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要将远程的一台主机“127.0.0.1:3128 …

Debian-Like
如何安装fcitx5解决Google Chrome输入法兼容问题?

1 前言 一个问题,一篇文章,一出故事。 笔者最近发现Google Chrome与当前系统的拼音输入 …