gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:35:23 30 4
gpt4 key购买 nike

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

这些数据库要顺利运行的最低要求是什么?

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

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

最佳答案

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

Mongodb 没有办法限制内存使用,它会使用它可以使用的最大内存。所以基本上,mongodb 的内存越多越好。将 mongodb 放在单独的机器上总是一个好主意。

对于hbase问题就没那么简单了,因为它是由底层服务组成的。这些服务是:namenode、datanode、zookeeper-server、hmaster、regionserver(如果你要使用 mapreduce,你需要 jobtracker 和 tasktraker)。 namenode、zookeeper-server 和 hmaster 不需要太多。但是随后您需要为数据节点提供良好的 io/ram 平衡,并为区域服务器提供更好的 ram。将这些服务放在同一个盒子上绝不是一个好主意(即使由于 io 需要它们是虚拟的也不行)。

最后但同样重要的是要提防交换! swap 是 mongodb 和 hbase 的敌人。

关于MongoDB、Riak 和 HyperTable(或 HBase)的内存需求/利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439952/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com