簡體   English   中英

如何配置 dockerd 不使用某些特定的 CPU?

[英]How to configure dockerd not to use some specific cpus?

全部。

我想為實時任務保留一些 CPU。 我嘗試使用cset實用程序( https://github.com/lpechacek/cpuset/blob/master/doc/tutorial.txt )但失敗了,因為 dockerd 將所有可用的 cpu 保留給它自己的 cpuset。

然后,我在啟動 dockerd 之前使用cset shield --cpus 0-10命令保留了 cpus 0~11。 但它也沒有奏效。 cpu 被屏蔽,dockerd 啟動但無法啟動容器:

2021-07-19T17:11:13+09:00 myserver dockerd[59166]: time="2021-07-
19T17:11:13.267579743+09:00" level=error msg="fatal task error"
error="starting container failed: OCI runtime create failed:
container_linux.go:367: starting container process caused:
process_linux.go:340: applying cgroup configuration for process caused:
failed to write \"0-79\\n\": write /sys/fs/cgroup/cpuset/docker/cpuset.cpus:
invalid argument: unknown" module=node/agent/taskmanager 
node.id=rzeijp8jgedezsli9x4ftjugc service.id=z6cz3jtf6nz4293ye50l23f2o 
task.id=qn9zcc45rvjdk50jyaycri7lg

cset結果表示 cpuset 發生沖突:

# cset set --list
cset: 
     Name       CPUs-X    MEMs-X Tasks Subs Path
 ------------ ---------- - ------- - ----- ---- ----------
     root       0-79 y     0-1 y   696    3 /
   docker      ***** n   ***** n     0    0 /docker
   system      12-79 y       0 n   481    0 /system
     user       0-11 y       0 n     0    0 /user

我想我需要告訴 dockerd 不要為其 cpuset 使用保留的 cpu,但找不到如何使用。

任何意見或建議將不勝感激。

我們可以將dockerd配置設置為/etc/docker/daemon.json 我將docker的父cgroup設置為/system ,問題解決了:

# cat /etc/docker/daemon.json 
{
  "cgroup-parent": "/system"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM