2017-04-06 123 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/

相關問題