|
Требование: При создании контейнера docker можно ограничить максимальное использование памяти контейнера, добавив параметр -m. Если контейнер уже создан, как можно динамически изменять и ограничивать процессор, память и другие ресурсы контейнера?
Просмотр ограничений памяти контейнера
На хост-компьютере установлена карта памяти объемом 8 Гб, и создано три контейнера, в которых контейнер itsvse-redis ограничен в использовании максимум 512 М памяти, а остальные два контейнера не ограничены, как показано на следующем рисунке:
Формат выходного сообщения
[CONTAINER]: отображение идентификатора контейнера в коротком формате. [CPU %]: использование процессора. [MEM USAGE / LIMIT]: текущий объем используемой памяти и максимальный объем памяти, который может быть использован. [MEM %]: отображение использования памяти в процентах. [NET I/O]: данные сетевого ввода/вывода. [BLOCK I/O]: данные дискового ввода/вывода. [PIDS]: номер PID.
Команда обновления докера
Команда docker update динамически обновляет конфигурацию контейнера. С помощью этой команды можно предотвратить потребление контейнерами слишком большого количества ресурсов хоста Docker. С помощью одной команды можно установить ограничения для одного контейнера или для нескольких контейнеров. Чтобы указать несколько контейнеров, укажите список имен или идентификаторов контейнеров, разделенных пробелами.
ОПЦИИ Описание
Имя | Описание | --blkio-weight | Блокировка ввода-вывода (относительный вес), от 10 до 1000, 0 означает отключение (по умолчанию отключено). | --cpu-period | Ограничение продолжительности CFS процессора (Completely Fair Scheduler) | --cpu-quota | Ограничение квоты CPU CFS (Completely Fair Scheduler). | --cpu-rt-period | API 1.25+ для ограничения реального времени процессора до микросекунд | --cpu-rt-runtime | API 1.25+, ограничивает время работы процессора в реальном времени микросекундами | --cpu-shares, -c | Доли процессора (относительные веса) | --cpus | API 1.29+, количество процессоров | --cpuset-cpus | Процессоры, которым разрешено выполнение (0-3, 0,1) | --cpuset-mem | Разрешенные к выполнению MEM (0-3, 0,1) | --kernel-memory | Ограничение памяти ядра | --memory-swap | Ограничение на своп, равное памяти плюс своп, "-1" для включения неограниченного свопа | --memory-reservatio | Мягкий лимит памяти | --memory, -m | Ограничение памяти | --pids-limit | API 1.40+, настройка лимита pids контейнеров (-1 означает отсутствие лимита) | --restart | Политика перезапуска, применяемая при выходе из контейнера |
Документация: https: //docs.docker.com/engine/reference/commandline/update/
Если предположить, что контейнер php5-fpm имеет ограничение на использование максимум 1024M (1G) памяти, то команда выглядит следующим образом:
(Окончание) |
Предыдущая статья: Кросс-оконное взаимодействие HTML5 PostMessageСледующая статья: [转一篇]一句 Task.Result в тупике, этот код еще как написать?
|