Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 7160|Ответ: 5

Docker модифицирует и ограничивает контейнерный процессор, память и другие ресурсы

[Скопировать ссылку]
Опубликовано 06.08.2022 13:55:37 | | | |
Требования: При создании docker-контейнера можно ограничить максимальное использование памяти контейнера, добавив параметр -m.

Ограничения памяти контейнера для просмотра

Хост-машина устанавливает 8G-флешку и создаёт 3 контейнера, максимальная память контейнера itsvse-redis ограничена 512 М, а оставшиеся два контейнера не ограничены, как показано на рисунке ниже:



Подробное объяснение формата выходной информации

[КОНТЕЙНЕР]: Отображает идентификатор контейнера в кратком виде.
Процент CPU: Загрузка процессора.
[MEM USE/LIMIT]: Используемая в данный момент память и максимальная доступная память.
[MEM %]: Отображает использование памяти в процентах.
[NET I/O]: Сетевые данные ввода-вывода.
[БЛОК ВВОДА-ВЫВОДА]: Данные ввода-вывода диска.
[PIDS]:P ID номер.

Команда обновления Docker

Команда docker update динамически обновляет конфигурацию контейнера. Вы можете использовать эту команду, чтобы предотвратить потребление контейнерами слишком большого количества ресурсов с их Docker-хостов. Одной командой можно установить лимиты как на один контейнер, так и на несколько контейнеров. Для указания нескольких контейнеров предоставьте список имён или идентификаторов контейнеров, разделённых пробелами.

Описание ОПЦИЙ

имя
описание
--blkio-вес
Блокирующий ввод (относительный вес), между 10 и 1000, 0 отключён (по умолчанию подавлен)
--CPU-точка
Ограничите длительность CFS CPU (Totally Fair Scheduler)
--cpu-quota
Ограничить квоты CPU CFS (полностью справедливый планировщик)
--cpu-rt-точка
API 1.25+, который ограничивает реальное время процессора микросекундами
--cpu-rt-runtime
API 1.25+, который ограничивает реальное время выполнения процессора микросекундами
--cpu-shares, -c
Доля процессора (относительный вес)
--Процессоров
API 1.29+, количество процессоров
--cpuset-cpus
Допустимый процессор (0-3,0,1)
--cpuset-mem
Разрешено MEM (0-3,0,1)
--kernel-memory
Ограничения памяти ядра
--memory swap
Лимит переключения равен памяти плюс свопу, «-1» для включения неограниченного обмена
--memory-reservatio
Мягкий предел памяти
--память, -м
Лимит памяти
--pids-limit
API 1.40+, корректируйте лимиты контейнерных PID (-1 означает неограниченно)
--перезапуск
Перезапустите политику, чтобы применить её при выходе контейнера

Документация:Вход по гиперссылке виден.

Предположим, вы ограничиваете контейнер php5-fpmМаксимальное использование памяти 1024M (1G), команда следующая:



(Конец)




Предыдущий:HTML5 PostMessage через окна
Следующий:[Поворот] Предложение. Задача. Результат будет заблокирован, как ещё написать этот код?
 Хозяин| Опубликовано 06.08.2022 13:58:43 |
Если не установить параметр --memory-swap, может появиться ошибка:

Ответ на ошибку от демона: Не удаётся обновить контейнер ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: Лимит памяти должен быть меньше, чем уже установленный лимит swap памяти, Обновляйте Memoryswap одновременно
 Хозяин| Опубликовано 06.08.2022 14:31:57 |
Linux использует lookbusy для моделирования использования процессора
https://www.itsvse.com/thread-10260-1-1.html
Опубликовано 06.08.2022 15:52:44 |
Учитесь учиться
 Хозяин| Опубликовано 01.07.2023 21:46:50 |
Варианты выполнения для памяти, процессора и видеокарты Docker:Вход по гиперссылке виден.

--детали свопа памяти

--memory-swap — это флаг модификатора, который имеет смысл только при установлении --памяти. Когда контейнер использует всю доступную оперативную память, использование swap позволяет контейнеру записывать избыточные требования к памяти на диск. Для приложений, которые часто переключают память на диск, производительность снижается.

Её сеттинг может иметь сложные эффекты:

Если --memory-swap установлен в положительное целое число, то обе --памяти должны быть установлены в --memory-swap. --memory-swap представляет общее количество используемых зон памяти и свопа, а --memory контролирует количество используемой памяти в несвапных зонах. следовательноЕсли --memory="300m" и --memory-swap="1g", контейнер может обменивать пространство с 300m памяти и 700m (1g - 300m).

Если --memory-swap установлен в 0, настройка игнорируется, и значение считается неустановленным.

Если --memory-swap установлен на то же значение, что и --memory, а --memory установлено в положительное целое число, контейнер не имеет доступа к swap。 См. раздел Предотвращение использования свопов контейнерами.

Если --memory-swap не установлен и --memory установлен, контейнер может использовать столько swap --memory, сколько задан (если хост-контейнер настроен с swap memory). Например, если --memory="300m" и --memory-swap не установлены, контейнер может использовать в общей сложности 600 м памяти и swap-пространства.

Если --memory-swap явно установлен в -1, контейнер может использовать неограниченное количество свопов, вплоть до числа, доступного на хост-системе.

Внутри контейнера такие инструменты, как free, отчётываются о доступных биржах для хоста вместо отчётов о доступных в контейнере. Не полагайтесь на результаты бесплатных или похожих инструментов, чтобы определить, существует ли биржа.
 Хозяин| Опубликовано 16.02.2024 4:07:22 |

Если --memory-swap не установлена,-- память устанавливается на значение,Стандартный вариант ---memory-swap может использовать ту же память, что и --memoryНапример, если ,-- memory-swap=1G, можно использовать 1G swap пространства, и, наконец, контейнер может использовать 2G памяти (--memory 1G space + --memory-swap 1G space).

Это означает, что при установке --памяти,-- swap памяти можно понимать как общий предел памяти, а доступное пространство обмена равно значению swap памяти минус память.

Посмотрите конфигурацию контейнера --memory-swap со следующей командой:



«Память»: 536870912, // 512M=536870912/1024/1024/1024
"MemoryReservation": 0,
"MemorySwap": 1073741824, // 1G=1073741824/1024/1024/1024
"MemorySwappiness": null,

Приведённая выше конфигурация заключается в том, что контейнер ограничивает память --memory=512M, и --memory-swap не установлен.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com