博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
11.2 本地memstore分配缓冲区
阅读量:6431 次
发布时间:2019-06-23

本文共 576 字,大约阅读时间需要 1 分钟。

hot3.png

一、 生存期长的keyvalue实例刷写到磁盘中--》老生代堆上生成孔洞-》孔洞越来越多,无法足够大的连续空间分配-》JRE使用 stop-the-world垃圾回收器-》重写整个堆空间,并压缩剩余可用对象

二、 解决以上问题的方法 :

  0.92版本后使用 本地memstore分配缓冲区(memstore-local allocation buffer) MSLAB

  即,从堆中分配同样大小的对象,当最终被回收时,堆中将留下固定大小的孔洞。

三、配置文件中 配置:

  1 通过hbase.hregion.memstore.mslab.enabled 来配置

  2 分配缓冲区大小:hbase.hregion.memstore.mslab.chunksize ,默认是2M,且是合理的。

    根据自己的keyvalue实例大小来调整。

  3 存储缓冲区上边界:hbase.hregion.memstore.mslab.max.allocation 属性,默认256kb,

    超过这个值,直接在java堆中申请空间。

四 优缺点:

   优点:推迟垃圾回收停顿的发生 

   缺点:1 浪费堆空间,不能充分利用

            2 使用缓冲区需要额外的内存复制工作,比直接使用keyvalues实例

转载于:https://my.oschina.net/u/1537182/blog/270627

你可能感兴趣的文章
虎牙直播在微服务改造方面的实践和总结
查看>>
eBay构建自有工具集成Kubernetes和OpenStack
查看>>
Python 3.8 新特性全面解读
查看>>
【网络推广方案】比相微博、SEOSEM依然是最有效手段
查看>>
机器学习入门(八) — 推荐系统
查看>>
zabbix 添加显卡监控(window)
查看>>
陶冶户外获4000万元Pre-B 轮融资,途牛战略领投
查看>>
我是如何把自定义注解应用到生产的
查看>>
阿里云与香港理工大学合作,推动人工智能在城市、医疗等行业应用
查看>>
倒计时一周,镁客网与你一起打响硬科技收官之战
查看>>
困惑与方案
查看>>
Eclipse教程1 - 3分钟理清Maven依赖
查看>>
UWP:使用Composition实现类似安卓的水波纹Ripple效果
查看>>
Wireshark 过滤规则
查看>>
quick-cocos2d-x踩坑记
查看>>
Vue.js最佳实践(五招让你成为Vue.js大师)
查看>>
使用C实现模拟实现一个shell解释器(一)
查看>>
ArcGIS for qml -测距
查看>>
Apache Tomcat 9.0.17 发布,知名 Web 应用服务器
查看>>
思考gRPC :为什么是HTTP/2
查看>>