Db2 на Docker Swarm потребление памяти - PullRequest
0 голосов
/ 11 января 2019

Я использую db2 на докере с самостоятельной установкой без полномочий root.

Даже если я установлю INSTANCE_MEMORY на минимум, он, похоже, зарезервирует 4 ГБ ОЗУ на сервере. Как DB2 может знать об ограничениях, установленных в файле docker-compose, когда я запускаю базу данных в кластере docker swarm как STACK?

Версия DB2 - 11.1.4FP4.

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

Когда я смотрю статистику докера, она использует только около 80 МБ.

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

Есть идеи? Это очень расстраивает. Большое спасибо

1 Ответ

0 голосов
/ 29 марта 2019

Я нашел проблему.

Это была конфигурация ядра в 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 (вернул конфигурацию по умолчанию), и теперь я могу использовать всю оперативную память хостов.

Я сохранил это:

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

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...