Direct Memory Usage in HBase的作用是什么啊?
默认最大可以使用的direct memory因JVM的不同而不同。传统下是64M,或者通过直接分配堆内存(-Xmx),或完全没有限制(如JDK7)。HBase服务器使用direct memory,特别是short-circuit reading(读数据不经过DataNode,客户端直接读文件),RegionServer上的DFSclient会分配direct memory buffers。DFSClient会使用的内存大小并不容易量化;它是由:打开的HFile文件数量 × hbase.dfs.client.read.shortcircuit.buffer.size 决定。hbase.dfs.client.read.shortcircuit.buffer.size在HBase中设置为128k(参考hbae-default.xml默认配置)。如果需要使用off-heap block caching,则需要使用到直接内存(direct memory)。在RPC Server中,也会使用一个ByteBuffer池,从hbase 2.0.0开始,这些缓冲区为off-heap ByteBuffers。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。