1

我正在查看文档,似乎不可能将 Docker swarm 中的进程隔离到特定核心,例如使用 numactl 或 cpuset--cpus 时。在docker run你这样做(16 cpu 机器,在 8-15 的第二个套接字上使用 8 cpu):

/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 的内存。

从“创建服务”文档中,我看到最接近的是“--reserve-cpu”和--reserve-memory',但这只是为了控制容器放置。

Docker Swarm 是否禁止这种级别的控制?我也在看 K8s,它似乎也有同样的限制。

谢谢,

4

1 回答 1

0

目前不支持,这是GitHub 上的一个问题,人们应该为这个功能投票。

于 2020-10-20T09:36:01.910 回答