ArangoDB 如何确定它有多少 RAM 可用?

How does ArangoDB determine how much RAM it has available?

我们在 AWS 实例上的 CoreOS docker 容器中 运行 ArangoDB。

这个实例有大约 1 GB 的内存。

然而,当我们加载 ArangoDB 前端时,认为它有 2 gigs 可用 RAM!

显然,它实际上没有可用的内存,因此每天崩溃 10 次,只要内存阈值超过 1我们的盒子上有演出。

A​​rangoDB 如何确定它有 X 可用内存量?在哪里可以更改此设置?

请对该容器进行 docker inspectHostConfig 对象中将有一个 Memory 条目。它可能会读 "Memory": 1073741824"OomKillDisable": false

的确,Memory: something限制了进程在容器中的常驻大小。如果超过了(并且不可能进行交换),则该过程将被这样的事情击落:

"State": {
  ...
  "OOMKilled": true,
  ...
}

arangod 作为进程无法看到 docker 容器内存限制。我们看到了主机的,这可能比您的情况更高。唯一的选择是提高容器的限制或通过命令行选项限制 arangod 内存使用。