java本机内存内部部分

xzabzqsa  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(233)

在jdk1.8.0.92上运行hadoopnamenodeproc,xmx和xmx=75gb,我们观察到系统内存在x间隔内出现峰值。慢慢地,一声巨响发生了。
在调试过程中,我们发现:
rss比xmx高
是heap吗?不,不是heap(可以看到jmx中的用法,它在控制之下)
是非堆还是泄漏-来自堆转储和jmap-histo未观察到泄漏。
然后呢?已在namenode proc env上启用nmt。
然后呢?我们可以看到增长发生在本机内存的内部部分,其模式如下-当它达到线程no的高计数时,提交的内存就变高了,并以增量的方式增长。
修复:tried-xx:maxdirectmemorysize=3g(没有任何更改,但仍在突破限制)tried-djdk.nio.maxcachedbuffersize(使用jdk1.8.0.192尝试,启用此选项仍会发生泄漏)malloc\u arena\u max-默认情况下,在hadoop-configs.sh上设置为4 tried,使用1和2仍会发生泄漏。
问题
如何控制内部本机内存部分?
如何列出此问题的原因以及此内部节的用法?
如何在jvm中计算malloc值?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题