HBase写性能优化之参数篇



 

  1. hbase.regionserver.handler.count (hbase-site.xml)
    默认值:10
    参数说明:每个Region Server上的RPC Handler的数量,提升RPC Handler的数量可以一定程度上提高HBase在处理大量并发时接收请求的能力

  2. HBASE_HEAPSIZE(hbase-env.sh)
    默认值:1000M
    参数说明:HBase对内存的消耗比较大,默认的内存分配太小了,建议将内存总大小的一半分配给HBASE_HEAPSIZE

  3. HBASE_OPTS(hbase-env.sh)
    默认值:UseConcMarkSweepGC
    参数说明:UseConcMarkSweepGC为并发收集器,并发收集在应用运行时进行收集,所以必须保证收集完成之前有足够的内存空间供程序使用,否则会出现“Concurrent Mode Failure”
    默认触发GC的时机是当年老代内存达到90%的时候,调整到70%~80%左右会比较好-XX:CMSInitiatingOccupancyFraction=<N>指定还有多少剩余堆时开始执行并发收集。
    主要是为了避免发生Full GC
    参考文章:http://hi.baidu.com/jiangyangw3r/item/402dc1abec3b859e15107383
  4. hbase.hregion.memstore.mslab.enabled (hbase-site.xml)
    默认值:
    在0.94版中(当前使用)默认值是 false,
    在0.92版中(当前使用)默认值是 true,
    在0.90版中(当前使用)默认值是 false
    参数说明:
    设置为true时,可以减少因内存碎片导致的Full GC,提高整体性能。
    原理:
    相当于预先分配内存,避免每一个值都要从堆里分配内存,减少内存碎片,默认会分配2MB大小的chunk(可以通过 hbase.hregion.memstore.mslab.chunksize 设定chunk的大小)在每个region上,当chunk满时会进行flush。
    但是也需要考虑mslab的大小= regions * number of column families * 2MB ,对于region数量过多会导致占有比较多的内存,是否会影响到应用的性能问题,这可能是导致apache官方对这个参数的默认值进行修订的原因
    官方解释:
             

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值