dmp文件改后缀能用吗,dmp后缀的文件怎么找

首页 > 经验 > 作者:YD1662022-10-29 13:36:43

然后使用JAVA的自带命令jstack去找到这个线程ID都在干什么就行了。这几个命令非常非常重要。

使用top命令,其实主要关注top命令里面的RES列的值,%CPU列的值,%MEM列的值,这三列的值就行了。然后

拿RES列的值跟后面jmap命令显示的jvm堆的值做比较。如果RES的值,比你的Xmx的值还大, 注意是比你设置的Xmx的值还大 ,说明你的java程序引用的有非堆(堆外地址)内存,比如NIO,DirectByteBuffer这些类会使用堆外的内存。所以要注意堆外内存泄露情况(就是你代码里面虽然已经不用这块堆外地址了,但是你的引用没释放,导致你的程序浪费了很多用不到的堆外地址)。 堆外内存泄漏可以使用Google出品的perf工具来排查。perf工具使用参见,大神的文章 feininan 的文章《 使用google perf工具来排查堆外内存占用 》。

这块知识点摘自网络上面 MartinDai 大神的文章 记一次堆外内存泄漏排查过程 。 执行top命令,再按c,看到对应的进程所占用的RES有8个多G(这里当时忘记截图了),但是实际上我们配置的Xmx只有3G,而且程序还是正常运行的,所以不会是堆占用了这么多,于是就把问题方向指向了非堆的内存。

RES列和%MEM列的关系为:RES/总内存=%MEM,我们来算一下:

dmp文件改后缀能用吗,dmp后缀的文件怎么找(13)

从上图可以看到,这台服务器的物理内存(运存)为:132024628k = 126G.

32924这个进程的RES列的值为:5.3G

32924这个进程的%MEM列的值为:4.2%

我们来算一下:RES:5.3G / total Mem:126G = 0.042 = 4.2%

这下你明白了吧RES列和%MEM列,表达的其实是一个意思。

RES的意思是:Resident Memory Size 常驻内存大小。使用man top命令看下top命令的官方帮助文档怎么说:

dmp文件改后缀能用吗,dmp后缀的文件怎么找(14)

dmp文件改后缀能用吗,dmp后缀的文件怎么找(15)

dmp文件改后缀能用吗,dmp后缀的文件怎么找(16)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.