Hbase offHeap(堆外内存)测试
blockcache是hbase中的读缓存,其主要组成包括LruCache和bucketCache,LruCache使用堆内内存,BucketCache使用堆外内存。本文是想对比hbase只用堆内内存作为读缓存(即只用LruCache)以及尝试配置BucketCache。以观察是否可以来减少GC,提高集群性能。
一、配置
使用两台同等规格的服务器,简称为主机A和主机B.
hbase使用堆内存总量均为8000M。
主机A为不配置堆外内存的主机,只使用0.39*8000=3120M堆内内存。相关参数为
<property>
<name>hfile.block.cache.size</name>
<value>0.39</value>
</property>
主机B配置了堆外内存和堆内内存,堆内内存为0.1*8000=800M,堆外内存为3172M,由于使用双重缓存后只有indexblock和bloomblock会存在堆内,datablock都会存在堆外,这一配置基本合理且总读缓存大小和主机A相差不大。由于设置相关参数为
<property>
<name>hbase.bucketcache.ioengine</name>
<value>offheap</value>
</property>
<property>
<name>hfile.block.cache.size</name>
<value>0.1</value&