1. 程式人生 > >HBase最佳實踐-CMS GC調優(從gc本身參數調優)

HBase最佳實踐-CMS GC調優(從gc本身參數調優)

部分 實踐 lock 讀寫 cms ofo mst 更多 操作

同誌們,此部分,重要的不能再重要了
1、HBase發展到當下,對其進行的各種優化從未停止,而GC優化更是其中的重中之重。
hbase gc調優方向
從0.94版本提出MemStoreLAB策略、Memstore Chuck Pool策略對寫緩存Memstore進行優化開始,到0.96版本提出BucketCache以及堆外內存方案對讀緩存BlockCache進行優化,再到後續2.0版本宣稱會引入更多堆外內存,可見HBase會將堆外內存的使用作為優化GC的一個戰略方向。

然而無論引入多少堆外內存,都無法避免讀寫全路徑使用JVM內存,就拿BucketCache中offheap模式來講,即使HBase數據塊是緩存在堆外內存的,但是在讀取的時候還是會首先將堆外內存中的block加載到JVM內存中,再返回給用戶。

這句話的理解在:http://hbasefly.com/2016/04/26/hbase-blockcache-2/
//提到了
BucketCache工作模式 //
比如,內存分配時heap模式需要首先從操作系統分配內存再拷貝到JVM heap,相比offheap直接從操作系統分配內存更耗時;但是反過來,讀取緩存時heap模式可以從JVM heap中直接讀取,而offheap模式則需要首先從操作系統拷貝到JVM heap再讀取,顯得後者更費時。

可見,無論使用多少堆外內存,對JVM內存的使用終究是繞不過去,既然繞不過去,就還是需要落腳於GC本身,對GC本身進行優化。

參考鏈接:
http://hbasefly.com/2016/08/09/hbase-cms-gc/

HBase最佳實踐-CMS GC調優(從gc本身參數調優)