首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB、Riak和HyperTable (或HBase)的内存要求/利用率

MongoDB、Riak和HyperTable (或HBase)的内存要求/利用率
EN

Stack Overflow用户
提问于 2011-09-16 11:52:05
回答 1查看 1.6K关注 0票数 2

我已经评估了大多数NoSQL解决方案,似乎使用MongoDB、Riak和HyperTable (或HBase)的组合是可行的。

要让这些数据库正常运行,最低要求是什么?

比方说,如果我将这些数据库(MongoDB、Riak和HyperTable --或HBase)、Web Server (如nginx或Cherokee)和Java/GlassFish -全部部署在一台运行FreeBSD、内存为32 GB的机器上,它们的性能会如何?请注意,通过这种方法,所有应用程序将平均共享整个32 GB的RAM。对于Java/GlassFish和HBase,可以使用"-Xmx0000m“选项来限制它,但是对于这些数据库,它们会自动使用整个内存吗?我知道MongoDB是内存映射的--等等--那么当它们都在争夺内存时会发生什么呢?(我认为可以通过启动参数来限制MongoDB、Riak和HyperTable的内存使用率,但是如何设置呢?)

或者,使用Solaris容器(或“区域”)虚拟化在Solaris (或OpenIndiana)上部署每个应用程序是更好的方法,例如为每个MongoDB、Riak和HyperTable/HBase区域分配4 GB?在这种方法中,所有的数据库基本上都在4 GB的环境下运行。那么,为了让它们正常工作,最小的舒适RAM是多少?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-16 14:11:54

我在生产中使用了mongodb和hbase,所以我可以对它们进行评论。

Mongodb没有办法限制内存使用,它使用的是最大内存。因此,基本上来说,mongodb有越多的内存就越好。把mongodb放在一台单独的机器上总是一个好主意。

对于hbase来说,问题不是那么简单,因为它由底层服务组成。这些服务是: namenode,datanode,zookeeper-server,hmaster,regionserver (如果你要使用mapreduce,你需要jobtracker和tasktraker)。namenode、zookeeper-server和hmaster不需要太多。但是,对于datanode,您需要良好的io/ram平衡,而对于region server,则需要更好的ram。将这些服务放在同一个机器上从来都不是一个好主意(即使它们是虚拟的,因为io的需要)。

最后但并非最不重要的一点是,要小心交换!交换是mongodb和hbase的敌人。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7439952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档