hbase入庫過程中JVM 新生代大小配置試驗

       hbase入庫過程中,除了hbase-site.xml中的一些常見的配置參數,其實很關鍵的一個環節是hbase-env.sh中的jvm參數配置。之前修改的一個重要參數就是新生代的大小。

      在大規模寫入數據的試驗中,我們分別將每個Regionserver的新生代內存配置爲不同大小(總大小爲32GB),入庫一段時間後,通過jstat命令查看每臺機器的三個運行狀態,YGC,FGC,GCT,繪製出以下性能圖形:(橫軸爲新生代內存配置大小,縱軸分別爲三個參數的實際取值,GCT單位秒,YGC,FGC單位爲次)

     

      對於圖中所顯示的,yong gc次數隨着新生代內存的增加顯著下降,而fullGC也略爲下降,總的GC時間在下降後又回升,4的位置達到最低點。

      由於進行海里數據入庫時,RegionServer端的內存只是作爲memstore來緩存和組織數據,最終大部分的數據都還是要刷到硬盤上。所以就決定了這種場景下內存中的舊有對象需要被儘快釋放。而新生代是最適合存放這些臨時性對象,能夠很快被minor gc回收。不過並不是新生代越大越好用,如果新生代過大,雖然gc的yong gc的頻度下降,不過消耗的時間相應也上升。所以,依據試驗中GCT最小的情況來選擇一個合理的參數是比較適合的。

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章