【问题标题】:Db2 on docker swarm memory consumptionDb2 on docker swarm 内存消耗
【发布时间】:2019-01-11 09:11:02
【问题描述】:

我在 docker 上使用 db2 进行自我非 root 安装。

即使我将 INSTANCE_MEMORY 设置为最小,它似乎在服务器上预留了 4G 的 RAM。 当我在 docker swarm 集群中将数据库作为 STACK 运行时,DB2 如何知道 docker-compose 文件中设置的限制?

DB2 版本为 11.1.4FP4。

docker --version
Docker version 18.03.1-ce, build 9ee9f40

当我查看 docker stats 时,它只使用了大约 80MiB。

CONTAINER ID        NAME                                     CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
8282c5d0c9e7        db2wse_db2.1.waalf6vljuapnxlvzhf2cb0uv   0.21%               76.83MiB / 1GiB     7.50%               0B / 0B             408MB / 6.86GB      56

我的 docker-compose.yml 文件

version: "3.3"
services:
  db2:
    image: docker-registry.ju.globaz.ch:5000/db2wse:11.1.4fp4
    networks:
     - network-db
    deploy:
      mode: replicated
      replicas: 1
      resources:
        limits:
          memory: 1G
networks:
  network-db:
    external: true

有什么想法吗?这是非常令人沮丧的。 非常感谢

【问题讨论】:

  • 保留 4 GB 是什么意思,如何衡量?您是如何将 Db2 安装到 Docker 中的?什么是 instance_memory?
  • @data_henrik :实例内存:db2 update dbm cfg using INSTANCE_MEMORY 131072;安装是通过 Dockerfile 中的响应文件完成的;我所做的唯一测量是在我得到异常之前我只能启动 8 个堆栈并且数据库没有启动。

标签: docker memory db2 swarm


【解决方案1】:

我发现了问题。

这是 sysctl.conf 中的内核配置。

我有这个:

cat /etc/sysctl.conf |grep vm.
vm.swappiness=10
vm.overcommit_memory=2
vm.dirty_ratio=2
vm.dirty_background_ratio=1

我删除了为 DB2 设置的所有内容(放回默认配置),现在我可以利用主机的所有 RAM。

我保留了这个:

cat /etc/sysctl.conf |grep vm.
vm.swappiness=10
vm.max_map_count=262144

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-02
    • 2020-02-06
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2016-09-26
    相关资源
    最近更新 更多