Есть способ передать --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, люди должны проголосовать за эту функцию.