线上的fsimage 有1.8G左右了,设置了6G heap 不够用了

新生代:老年代=1:2=2G: 4G

NameNode的内存主要由NameSpace和BlocksMap占用,其中NameSpace存储的主要是INodeFile和INodeDirectory对象,BlocksMap存储的主要是BlockInfo对象。则估算NameNode占用的内存大小也就是估算集群中INodeFile、INodeDirectory和BlockInfo这些对象占用的heap空间。

Java中常见数据结构占用的内存大小

下面先列举下java中常见数据结构占用的内存大小(64bit的jvm)

int = 4 bytes

long = 8 bytes

Reference size(引用) = 8 bytes

Object header size(对象头) = 16 bytes

Array header size(数组头) = 24 bytes

ArrayList header size(list头) = 24(数组头) + 4(属性size的大小) = 28 bytes

TreeMap.Entry = 64 bytes. (Entry的属性中有5个引用)

HashMap.Entry = 48 bytes. (Entry的属性有3个引用)

String header = 64 bytes.

1.去 hdfs ui 上看

19262510 files and directories, 14485600 blocks = 33748110 total filesystem object(s).
Heap Memory used 4.68 GB of 5.86 GB Heap Memory. Max Heap Memory is 5.86 GB.

33745283 * 150 bytes = 4.7G

2.大概用jmap 查看内存大概有 4.68Gb

$ jmap -histo:live  31366 | grep 'Total'
Total 84543039 4688976560

两者近似了,fsimage 大概在内存放大 2.6倍左右(当然内存中数据更多些,多了块与节点之间的映射)


参考:http://bigdatadecode.club/NameNode内存解析及大小评估.html

hdfs fsimage namenode 应该设置多少堆内存合适的更多相关文章

  1. HDFS的NameNode堆内存估算

    NameNode堆内存估算 在HDFS中,数据和元数据是分开存储的,数据文件被分割成若干个数据块,每一个数据块默认备份3份,然后分布式的存储在所有的DataNode上,元数据会常驻在NameNode的 ...

  2. 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便

    Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决 解决方案 在 catalin ...

  3. 干货:JVM 堆内存和非堆内存

    堆和非堆内存 按照官方的说法:"Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的."" ...

  4. JVM 堆内存和非堆内存

    转载自:http://www.importnew.com/27645.html 堆和非堆内存 按照官方的说法:“Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此 ...

  5. myeclipse 配置堆内存

    2.非堆内存分配 JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64:由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4. 打开myeclipse ...

  6. Java堆内存Heap与非堆内存Non-Heap

    堆(Heap)和非堆(Non-heap)内存     按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的.”“在 ...

  7. Java堆内存不足

    1)使用IDEA开发程序时有时候会提示“Java Heap space error”,说明IDEA默认配置的Java堆内存不足,程序需要更多的堆内存. 2)堆(Heap)和非堆(Non-heap)内存 ...

  8. 2019/05/13 JAVA虚拟机堆内存调优

    -Xms4000m 堆内存初始值 * -Xmx4000m 堆内存最大值 * -XX:+PrintGCDetails 打印GC信息 * -XX:+UseSerialGC 使用串行GC * -XX:+Pr ...

  9. JVM堆内存参数优化,让性能飞起来

    堆内存是Java进程的重要组成部分,几乎所有与应用相关的内存空间都和堆有关.现在主要介绍与堆内存相关的参数设置,这些参数对Java虚拟机中非常重要的,也是对程序性能有着重要的影响.让你彻底脱离OOM内 ...

随机推荐

  1. ubuntu-docker入门到放弃(六)数据管理

    在docker的数据管理中,有两个概念: 1.数据卷 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: 1.1 数据卷可以在容器之间共享和重用 1.2 对数据卷的修改会立刻 ...

  2. 关闭AutoCAD 2019快速访问工具栏的web和moblie保存文件功能

    解决方法如下:1.先关闭CAD,再打开注册表编辑器:开始--运行--输入 regedit2.定位到 [HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R23. ...

  3. vue-clil的快速搭建vue项目

    1.npm i vue-cli -g 全局安装 2.vue init webpack myProject 3.cd myProject 4.npm i 稍等片刻 完成运行下一步 5.npm run d ...

  4. vc++使用cookie登录网站

    以http://www.idc816.com为例 效果图: 1)先登录获取cookie,再使用cookie获取用户信息 2)记录cookie,关闭程序后重新运行程序,直接获取用户信息 使用Fiddle ...

  5. Android开发教程之【环境搭建及HelloWorld】(转载)

    引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始A ...

  6. 知识点-jar包

    JAR文件的全称是Java Archive File,意思就是Java档案文件.通常JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,同城也被称为JAR包.JAR文件与zip文件的去区别就是在JA ...

  7. Kowala协议:一组分布式,自我调节,资产跟踪特性的加密货币(二)

    对于稳定币来言,设计过程中会遇到很多细节的问题,今天来讲述下有关通证设计过程中的一些问题. 1.计算手续费 计算费是交易费的一部分,转移给kUSD矿工,并由以下公式决定: 其gasUsed(t) 是用 ...

  8. [UE4]显示队友

  9. 关于promise的几个认知

    1. 为什么要有promise ···从代码上来说回避了回调嵌套的问题,其次promise可以保留异步请求的状态(即使得到结果不立刻执行回调,过一阵再执行仍然是可以的.) ···从思想上来说,我们设计 ...

  10. Mybatis 系列5-结合源码解析TypeHandler

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...