Есть способ передать --cpus-cpuset и --cpuset-mems в docker swarm

Я просматривал документацию, и мне кажется, что невозможно изолировать процессы в Docker swarm для определенного ядра, например, когда вы используете numactl или cpuset -cpus. В docker run вы делаете это так (машина с 16 процессорами, используйте 8 процессоров на втором сокете с 8-15):

/usr/bin/docker run --detach --name myproc --cpus 8 --cpuset-cpus 8-15 --cpuset-mems 1 --  privateregistry:5000/myimage:v1 -c '/bin/myverycpuintensiveprocess.sh'

И я могу подтвердить, что процессы не переходят от ядра к ядру, а остаются закрепленными на CPUS 8-15. Также они будут использовать память из сокета 1.

Из документации " create service" я вижу, что ближайшие у вас есть "--reserve-cpu" и --reserve-memory ", но это только для управления размещением контейнера.

Запрещен ли этот уровень контроля в Docker Swarm? Я также смотрел на K8s, и, похоже, у него те же ограничения.

Благодаря,

1 ответ

Решение

На данный момент это не поддерживается, это проблема GitHub, люди должны проголосовать за эту функцию.

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