问题描述
我一直在浏览文档,似乎无法将Docker swarm中的进程隔离到特定的内核,例如使用numactl或cpuset--cpus时。在docker run中,您可以这样操作(16 cpu的计算机,在8-15的第二个套接字上使用8 cpus):
/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是否禁止了此级别的控制?我也在看K8,它似乎有相同的局限性。
谢谢
解决方法
当前不支持此功能,它是issue on GitHub,人们应为此功能投票。