docker - 将 ArangoDb 与 Docker mem_limit 结合使用

标签 docker arangodb

我们目前正在使用 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/

相关文章:

windows - 在 Windows 上保存 Docker 容器状态

shell - 当端点为 0.0.0.0 时,arangosh 无法连接到端点

Python http响应解码

docker - docker-entrypoint-initdb.d上的Arangodb连接失败

python - 权限被拒绝 (Errno 13) - wandb init - 在 docker 容器中

Docker Stack/Compose Redis 实例不持久化数据

mysql - Spring Boot 应用程序使用 mysql 进行扩展

docker - 无法在端口映射的IP地址上到达另一个Docker容器

python - 如何在 Django 数据库中使用 Arangodb?