JVM 调优实战--jmap的使用以及内存溢出分析

目录


jmap的使用以及内存溢出分析

查看内存使用情况

查看内存中对象数量及大小

将内存使用情况dump到文件中

通过jhat对dump文件进行分析

通过MAT工具对dump文件进行分析

MAT介绍

MAT下载安装

MAT使用步骤 


jmap的使用以及内存溢出分析

查看内存使用情况

查看tomcat的内存使用情况:jmap -heap tomcat进程ID

①查看堆内存配置信息:

②查看堆内存使用情况:

查看内存中对象数量及大小

使用 jmap -histo 进程ID | more 查看对象数量及大小。在Linux系统中,可以使用管道 | more来一段一段地输出信息。Windows系统也可以使用。

使用 jmap -histo:live 进程ID | more 可以查看活跃的对象数量及大小:

将内存使用情况dump到文件中

dump下来的文件是二进制格式的。 

通过jhat对dump文件进行分析

将jvm的内存dump到文件中,这个文件是一个二进制的文件,不方便查看,这时我们可以借助jhat工具进行查看:

通过浏览器访问9999端口就可以访问到dump下来的文件信息了:

页面的最下方提供OQL查询链接:

查询链接  http://xxx:9999/oql/

OQL查询语句示例(可以通过OQL Help来查看一些语句示例):

如查询长度>=100 的字符串有哪些:

select s from java.lang.String s where s.value.length >= 100

可以看到长度大于1000的字符串是一些配置文件如web.xml之类的:

说明配置文件是以一个字符串的形式加载到内存中的。

通过MAT工具对dump文件进行分析

MAT介绍

MAT下载安装

双击运行:

MAT使用步骤 

使用步骤:

发布了824 篇原创文章 · 获赞 369 · 访问量 79万+

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/103992788
今日推荐