Hbase的性能调优

这里有一些关于性能调优参数的总结和说明,其中有一些自己的经验以及参数书籍《HBase The definitive Guide》:
第一章:GC的相关参数配置
1.swap的设置:
  我们需要关闭操作系统的swap或是设置swappiness为0,推荐设置为0,这样只有在物理内存不够的情况下才会使用交换分区。这个参数设置是由于JVM虚拟机如果使用了swap在
GC回收时会花费更多的时间,会导致Region server 与ZK 连接超期,Hmaster会认为Region server已经故障,然后开始分裂HLog和重新分配Region,即使Region server完成GC后,再次上报
信息给Hmaster时,Hmaster也会抛YouAreDead的异常给Region server和让它退出服务, 所以这个参数的配置是一个必须条件。

2.GC回收采用并行增量式的方式,目前在0.90的默认配置,以我的经验在这个配置下我们目前还没有发现由于full GC的情况。 按照社区给的意见大概1G的内存的如果Full GC可能需要10s中的时间
  所以我们要设置ZK的session时长和内存大小到一个比较合适的值,减少因为full GC产生当机的情况。 另外,我们一定要注意一下参数:
  -XX:CMSInitiatingOccupancyFraction=70
  70为JVM的使用百分比,当达到这个阈值后将启动回收任务。这个值比较合适的值是要略大于memstoresize 40%+ blockcache 20%。
 
3、开启特性MLAB
  MLAB特性是在分析了HBase产生内存碎片的根因后给出了解决方案,这个方案虽然不能够完全解决Full GC带来的问题,但是一定程度上延缓了full GC的产生间隔。MLAB在0.90版本默认是关闭的
  在0.92版本是默认打开(92版本最近准备发布了,已经拉出分支来了)。 使用这个特性时,一定要注意如果keyvalue,如果这个值很大的情况要增加chunk值(目前默认2M)(待续)

你可能感兴趣的:(hbase)