2017-04-06 124 views
0

我有16GB 一个英特尔至强披64核CPU芯片上存储器设定为NUMA节点1.我要绑定一个多克尔容器本NUMA节点中运行的过程,但它的错误出来:我如何numactl成员内部的Docker容器进程?

[email protected]$ sudo numactl --membind 1 python script.py 
Error: set_mempolicy: Operation not permitted 
setting membind: Operation not permitted 

我也试图绑定整个多克尔母船到NUMA节点1,但没有运气:

localhost$ sudo numactl --membind 1 docker run xyz /bin/bash 

这不会给任何错误,但显示没有利用片上存储器中。

我的问题是:如何将进程绑定到NUMA节点1成功?谢谢!

回答

0
  1. 你需要得到哪些CPU属于1个NUMA节点:

    $ lscpu | grep node1

    NUMA node1 CPU(s): 8-15,24-31

  2. 的搬运工创建cpuset:

    $ cgcreate -g cpuset:docker

    $ echo 8-15 > /sys/fs/cgroup/cpuset/docker/cpuset.cpus

  3. 如果你想运行特定的NUMA节点上只是某些容器:

    cgcreate -g cpuset:my-cgroup

    echo 8-15 > /sys/fs/cgroup/cpuset/my-cgroup/cpuset.cpus

  4. 泊坞窗允许把新容器根据不同的cgroup中:

    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/

相关问题