Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 7160|Відповідь: 5

Docker модифікує та обмежує контейнерний процесор, пам'ять та інші ресурси

[Копіювати посилання]
Опубліковано 06.08.2022 13:55:37 | | | |
Вимоги: При створенні docker-контейнера можна обмежити максимальне використання пам'яті, додавши параметр -m.

Обмеження пам'яті контейнера для перегляду

Хост-машина встановлює 8G-флешку і створює 3 контейнери, з яких максимальна пам'ять контейнера itsvse-redis обмежена 512 М, а решта двох контейнерів не обмежені, як показано на рисунку нижче:



Детальне пояснення формату вихідної інформації

[КОНТЕЙНЕР]: Відображає ідентифікатор контейнера у короткій формі.
Відсоток процесора: Завантаження процесора.
[MEM USEAGE/LIMIT]: Яка пам'ять використовується наразі і максимальна пам'ять, яку можна використати.
[MEM %]: Відображає використання пам'яті у відсотках.
[NET I/O]: Дані мережевого введення/виведення.
[БЛОК ВВЕДЕННЯ/ВИВОД]: Дані вводу/виводу диска.
[PIDS]:P ID номер.

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

Команда docker update динамічно оновлює конфігурацію контейнера. Ви можете використовувати цю команду, щоб запобігти споживанню контейнерами надто багато ресурсів від своїх Docker-хостів. Однією командою можна встановити ліміти на один або кілька контейнерів. Щоб вказати кілька контейнерів, надайте список імен контейнерів або ID, розділених пробілами.

Опис ОПЦІЙ

Ім'я
опис
--blkio-weight
Блокування IO (відносна вага), між 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: Ліміт пам'яті має бути меншим, ніж уже встановлений ліміт memoryswap, Оновити 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 деталі

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

Його налаштування можуть мати складні ефекти:

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

Якщо --memory-swap встановлено на 0, налаштування ігнорується, і значення вважається невстановленим.

Якщо --memory-swap встановлено на те саме значення, що й --memory, а --пам'ять встановлено на додатне ціле число, контейнер не має доступу до swap。 Див. Заборону використання свопів контейнерами.

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

Якщо --memory-swap явно встановлено на -1, контейнер може використовувати необмежену кількість свопів до кількості, доступної на хост-системі.

Всередині контейнера такі інструменти, як free, звітують про доступні обміни для хоста замість звітування про обміни, доступні всередині контейнера. Не покладайтеся на результати безкоштовних чи подібних інструментів, щоб визначити, чи існує біржа.
 Орендодавець| Опубліковано 16.02.2024 04:07:22 |

Якщо --memory-swap не встановлено,-- пам'ять встановлюється на значення,Стандартний ---memory-swap може використовувати ту ж пам'ять, що й --пам'ятьНаприклад, якщо ,-- memory-swap=1G, можна використовувати 1G swap простору, і нарешті, контейнер може використовувати 2G пам'яті (--memory 1G space + --memory-swap 1G space).

Це означає, що коли встановлено ---пам'ять,-- 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