Установите количество ядер ЦП контейнера с помощью API Docker Engine.

У меня есть серверная серверная программа, которая запускает Docker-контейнеры с использованием Docker Engine API (Json API), и я бы хотела ограничить количество ядер ЦП на Docker-контейнер, например, до 1.

В документации Docker Engine API есть несколько опций для настройки параметров ЦП контейнера, см. https://docs.docker.com/engine/api/v1.24:

"HostConfig": {
     "CpuPercent": 80,
     "CpuShares": 512,
     "CpuPeriod": 100000,
     "CpuQuota": 50000,
     "CpusetCpus": "0,1",
     "CpusetMems": "0,1"
}

Я мог бы использовать CpusetCpus для этого, но это довольно обременительно, так как мне нужно вести список того, какие контейнеры докеров назначены каким ядрам ЦП. (Мне все равно, на каком ядре процессора работает мой контейнер, я просто хочу избежать использования более 1 ядра процессора.)

Я мог бы также установить CpuQuota так что каждый док-контейнер использует только, например, 12,5% всех ядер ЦП, что соответствует 1 ядру ЦП на сервере с 8 ядрами ЦП. Проблема с этим подходом состоит в том, что если я запускаю свою серверную программу на другом сервере с другим количеством ядер ЦП, CpuQuota настройка 12,5% больше не соответствует 1 ядру процессора.

Оба варианта выше громоздки и далеки от идеальных. Должен быть лучший / более простой способ установить количество ядер ЦП на контейнер?!

1 ответ

Вы можете установить NanoCPUs, 1000000000 единиц будет равно 1 ядру.

Другие вопросы по тегам