我有一个 16GB 的 Intel Xeon Phi 64 核 CPU 片上存储器设置为 NUMA 节点 1。我想将一个在 Docker 容器内运行的进程绑定(bind)到这个 NUMA 节点,但它出错了:
root@Docker$ sudo numactl --membind 1 python script.py
Error: set_mempolicy: Operation not permitted
setting membind: Operation not permitted
我还尝试将整个 Docker 母舰绑定(bind)到 NUMA 节点 1,但没有运气:
localhost$ sudo numactl --membind 1 docker run xyz /bin/bash
这没有给出任何错误,但显示没有使用片上存储器。
我的问题是:如何成功地将进程绑定(bind)到 NUMA 节点 1?谢谢!
最佳答案
$ lscpu | grep node1
NUMA node1 CPU(s): 8-15,24-31
$ cgcreate -g cpuset:docker
$ echo 8-15 > /sys/fs/cgroup/cpuset/docker/cpuset.cpus
cgcreate -g cpuset:my-cgroup
echo 8-15 > /sys/fs/cgroup/cpuset/my-cgroup/cpuset.cpus
docker run -it --rm --cgroup-parent=/my-cgroup/ ubuntu bash
如需更多信息,请参阅 https://sthbrx.github.io/blog/2016/07/27/get-off-my-lawn-separating-docker-workloads-using-cgroups/ .
关于python - 如何在 Docker 容器中对进程进行 numactl membind?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43267481/