11.1 垃圾優化回收

1 爲何要優化垃圾回收?  web

 寫入負載高時,繁重的負載會迫使內存分配策略沒法安全的只依賴JRE對程序行爲的各類假設:須要調整JRE的參數來調整垃圾回收策略。安全

2 JVM堆內存怎麼出現孔洞?併發

        寫入的數據時客戶端在不一樣時間寫入的。優化

        參閱:JVM運行原理 http://blog.csdn.net/bingduanlbd/article/details/8363734spa

                    JVM垃圾回收器  http://my.oschina.net/u/128568/blog/264257.net

3 hbase中怎麼設置JVM參數?日誌

   1  hbase_env.sh 中 HBASE_OPTS或者HBASE_REGIONSERVER_OPT變量來設置垃圾回收的選項。推薦使用後者。orm

   2  設置新生代大小的參數,不能太小,太小則致使年輕代過快成爲老生代,引發老生代產生內存碎片。blog

                                                 不能過大,過大致使全部的JAVA進程中止時間長。  -XX:MaxNewSize=128m   -XX:NewSize=128m進程

   3 設置垃圾回收日誌,打印日誌,可以看到新生代提高到老生代失敗的信息。"concurrent mode failure",'promotion failed"

                   -verbose:gc -XX: +PrintGCDetails -XX:+PrintGCTimeStamps  \

                   -Xloggc:$HBASE_HOME/logs/gc-$(hostname)-hbase.log

   4 設置垃圾回收策略 

                   -XX:+UseParNewGC  -XX:+UseConcMarkSweepGC

  5  設置CMS的值,佔比多少時,開始併發標記和清掃檢查。


 綜上:export  HBASE_REGIONSERVER_OPT ="-Xmx8g  -Xms8g  -Xmn128m  -XX:+UseParNewGC  -XX:+UseConcMarkSweepGC  \

              -XX:CMSInitiatingOccupancyFraction=70   -verbose:gc  \

              -XX: +PrintGCDetails -XX:+PrintGCTimeStamps \ 

               -Xloggc:$HBASE_HOME/logs/gc-$(hostname)-hbase.log

相關文章
相關標籤/搜索