it-roy-ru.com

Ограничение памяти и процессора в Docker-контейнере

Обновление:

нашел много вопросов и обсуждений на stackoverflow по этой теме. И хотя они помечены как принятые ответы и запущены тысячами пользователей, они не кажутся здесь правильным ответом.


Я запустил контейнер докера (версия 1.13.1, сборка 092cba3) с ограничениями ресурсов следующим образом:

docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup -m 4096M --cpuset-cpus='0' --cpus=1 --cpu-shares=256 -p $IMAGE_NAME

Хост-система (RHEL 7) имеет 4 ядра и 8G памяти. В основном я хочу ограничить доступную память и процессор для контейнера. После успешного запуска контейнера я открыл bash и попытался найти предельную информацию внутри контейнера. Но я не смог получить правильную информацию.

Я попробовал это:

Sudo cat /proc/meminfo

Результат:

Хост-система MemTotal: 8008812 кБ MemFree: 7416404 кБ MemAvailable: 7537332 кБ
Контейнер Docker MemTotal: 8008812 кБ MemFree: 7318052 кБ MemAvailable: 7498764 кБ

Точно так же я хотел получить ограничение по процессору:

grep -c ^processor /proc/cpuinfo

Результат:

Хост-система 4
Docker Image 4

Кажется, что ограничение ЦП и памяти, установленное контейнером, не видно контейнером. Я также пытался запросить информацию о cgroup.

mkdir -p /tmp/memory
mount -n -t cgroup -o memory cgroup /tmp/memory

Затем я просматриваю файлы cgroup:

[[email protected] memory]# cat /tmp/memory/memory.limit_in_bytes
9223372036854771712

Это число больше, чем фактическая память хост-системы.

Есть ли способ проверить, что ограничения ресурсов были правильно установлены в контейнере? Как найти информацию об ограничении ресурсов внутри контейнера? Ценю любое предложение.

3
mattsun

Обновление

Это ответ, который работает: https://stackoverflow.com/a/41827812/3209177


Я только что нашел этот ответ:

Ограничение памяти на контейнере Docker не работает

Я собираюсь попробовать это и вернуться с моим наблюдением.

0
mattsun

я пробую эту команду, это мой докер. Хост, он работает docker run -it -d -m 100M --cpuset-cpus = '0' --cpus = 1 --cpu-shares = 256 - проверка имени ubuntu/bin/Баш

Тестирование статистики докера

1
Thol Voleak