Установите количество ядер ЦП контейнера с помощью API Docker Engine. - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть серверная серверная программа, которая запускает 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 для этого, но это довольно громоздко, так как мне нужно вести список контейнеров докеровназначены какие ядра процессора.(Мне все равно, на каком ядре процессора работает мой контейнер, я просто хочу избежать использования более чем одного ядра процессора.)

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

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

1 Ответ

0 голосов
/ 19 сентября 2018

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

...