gpt4 book ai didi

node.js - ArangoDB:如果数据或索引不再适合 RAM,会不会很糟糕?

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:19 29 4
gpt4 key购买 nike

亲爱的 ArangoDB 社区,

我想知道当我们使用 ArangoDB 时它是否不好,如果不幸的是数据 + 索引变得太大并且不再适合 RAM。那是怎么回事?它会严重破坏系统性能吗?

对于 TokuMX,它是 MongoDB 的一个非常迷人的分支(TokuMX 提供了我需要的 ACID 事务),他们说这根本不是问题!甚至 TokuMX 在他们的网站上也明确表示,如果数据 + 索引不适合 RAM,对 TokuMX 来说没什么大不了的。

此外,对于 MongoDB 和 TokuMX,我们可以通过一些命令限制 RAM 使用。

对于我的 web 项目,我想决定我要使用哪个数据库,我不想稍后更改。我的数据库服务器的RAM现在不超过500MB,它被NodeJS服务器并发使用。所以两者都位于一台服务器上。

在那台服务器上,我有 1 个 Nodejs 服务器和 2 个正在运行的数据库实例。在此,我将 TokuMX 和 ArangoDb 与 linux 中的 TOP 命令进行比较,以检查 RAM 使用情况。两个数据库都只有一小部分用于测试。 Linux 中的 TOP 命令对我说:ArangoDB: RES: 128 MByte in use,对于 TokuMX,它说只有 9 MB (!!) Res 意味着:我发现实际的、真正使用过的物理 RAM。所以,差异已经很大了......谢谢和许多问候。虚拟内存的使用也大不相同。 5 Gb 用于 arangodb。 tokumx 只有 300 MB。

最佳答案

ArangoDB 是一个数据库加上一个 API 服务器。它使用 V8 toifif 扩展数据库的功能并定义新的 API。在我的 Mac 上的默认配置中,它使用 3 个调度程序线程和 5 个 V8 线程。这给出了驻留大小 81M。将调度程序设置为 1(通常就足够了)会将其减少到 80M。将 V8 实例设置为两个

./bin/arangod -c etc/relative/arangod.conf testbase3 --scheduler.threads 1 --server.threads 2

将其减少到 34M,将其设置为 1 将其减少到 24M。因此推测数据库本身使用不到14M。

如果数据和索引增长过大,任何以内存为主的数据库(无论是 mongodb、arangodb 还是 redis)的性能都会下降。如果您的索引仍然适合内存并且您的工作数据集足够小,它可能没问题。但是,如果您的工作集变得太大,您的服务器将开始交换并且性能将下降。这个问题将存在于任何类型的主要内存数据库中,如 ArangoDB 和 MongoDB。

另外一个问题:是否可以在一个 ArangoDB 实例上使用两个不同的数据库?如果只启动一台服务器,其中包含两个数据库,内存效率会更高。

关于node.js - ArangoDB:如果数据或索引不再适合 RAM,会不会很糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24015474/

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