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

相关文章
相关标签/搜索