我正在查看文档,似乎不可能将 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,它似乎也有同样的限制。
谢谢,