【发布时间】: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 个堆栈并且数据库没有启动。