我们目前正在使用 arangodb 来处理非常小的图(60-100)个节点,并且我们希望使用 docker-compose 中的 mem_limit 将 docker 容器的内存限制为 1GB。
是否可以将 arangodb 配置为在此限制内运行?
我们很难找到内存配置文档,到目前为止只找到了 https://www.arangodb.com/2016/03/put-arangodb-spartan-mode/ 。
最佳答案
您可以将任何可用的参数传递给 arangod
arangod 在 docker 容器中运行,如下所示:
docker run \
-e ARANGO_RANDOM_ROOT_PASSWORD=1 \
-e ARANGO_STORAGE_ENGINE=rocksdb \
-p 8529:8529 \
-d arangodb \
\
arangod \
--log.file /var/log/arangodb3/arangod.log \
--foxx.queues false \
--rocksdb.block-cache-size 0 \
--cache.size 0
并可以使用它来控制所有可用的 arangodb 参数。 要使用更少的内存,您可能需要使用rocksdb 存储引擎。
您可能想要配置rocksdb engine, like disabling caches以降低内存占用并降低性能。您还可以disable the cache这也用于提高图遍历性能。
但是,没有办法将 ArangoDB 限制在一定的内存量,并且通过从外部对其进行限制,您可能会因为无法分配内存并因 OOM 错误而失败而牺牲稳定性。
关于docker - 将 ArangoDb 与 Docker mem_limit 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47750910/