惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
博客园 - 【当耐特】
小众软件
小众软件
博客园 - Franky
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
雷峰网
雷峰网
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
Last Week in AI
Last Week in AI
博客园_首页
月光博客
月光博客
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
Webroot Blog
Webroot Blog
Stack Overflow Blog
Stack Overflow Blog
腾讯CDC
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Docker
The Last Watchdog
The Last Watchdog
有赞技术团队
有赞技术团队
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
DataBreaches.Net
S
Security @ Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
Y
Y Combinator Blog
O
OpenAI News
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Forbes - Security
Forbes - Security
P
Palo Alto Networks Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
K
Kaspersky official blog
Cloudbric
Cloudbric

博客园 - 姜伟华

我常用的软件列表 How can I handle a destructor that fails 让windows explorer总是打开文件夹视图的方法 转一个windows "无法停止‘通用卷’设备"的解决方法 终于看到外界宣传我们的产品 Intel XML Software Suite了。 将PDF文件放大缩小 一篇非常不错的探讨pure virtual function call错误的文章。 D-LINK DI-524无线路由器变身DI-624,解决BT断线问题 Emacs在FreeNX下不工作 gdb中如何使用shell环境变量 我的GVIM配置 开始写XML Code了 终于毕业了 放弃office,拥抱latex 终于选定了编辑器了 郁闷的夏天 Jikes RVM中 Java 循环的识别 在PearPC上安装Mandrake 9.1 for PPC的经历 今天复旦软院的第一届学生就要毕业了
HBase的内存使用
姜伟华 · 2011-06-24 · via 博客园 - 姜伟华

HBase region server作为一个Java程序,启动时应该指定max heap size,比方说8G。那这8G会被如何使用呢?

1. 作为每个region的mem store,缺省是64M。那么如果这个region server一共有100个region的话,就要用掉64M*100=6.4G内存了。

2. 作为block cache用,缺省是20%的内存用作block cache,那么就是8G*20% = 1.6G。

3. 其他对象分配。

从上面的情况可以看到,如果这个region server只有8G的heap size的话,在100个region的情况下,内存已经完全用完了(6.4G+1.6G),这样的话,就非常容易出OutOfMemoryError了。当然在实际使用中,基本不会因为这个原因产生OOME。这主要是因为HBase的这个配置hbase.regionserver.global.memstore.upperLimit(缺省是40%的内存)起了作用。但这是有代价的。其代价就是block住所有在这个region server上的update操作并强制进行flush以释放内存。这样的话,整个region server在这段时间内就不响应任何请求。所以,应该限制每个HBase region server的region个数。按照Google的经验,这个数字应该不超过100。

读HBase的source code可以发现,对于put heavy的应用来说,mem store flush只发生在mem store满的情况。而由flush又进一步引起minor compaction, major compaction和split。所以为了减少flush次数,似乎应该增大mem store size并相应减少region个数。这样应该会对写入速度有好处。回头实验下吧。