如何配置 dockerd 不使用某些特定的 cpus?
How to configure dockerd not to use some specific cpus?
所有。
我想保留一些 cpu 用于实时任务。
我尝试使用 cset
实用程序,(https://github.com/lpechacek/cpuset/blob/master/doc/tutorial.txt)
但失败了,因为 dockerd 将所有可用 cpu 保留给它自己的 cpu 集。
然后,我在启动 dockerd 之前使用 cset shield --cpus 0-10
命令保留了 cpus 0~11。但它也没有用。 cpus被屏蔽了,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 不要为其 cpu 集使用保留的 cpus 但找不到如何。
如有任何意见或建议,我们将不胜感激。
我们可以将dockerd
配置设置为/etc/docker/daemon.json
。
我将 docker 的父 cgroup 设置为 /system
并且问题解决了:
# cat /etc/docker/daemon.json
{
"cgroup-parent": "/system"
}
所有。
我想保留一些 cpu 用于实时任务。
我尝试使用 cset
实用程序,(https://github.com/lpechacek/cpuset/blob/master/doc/tutorial.txt)
但失败了,因为 dockerd 将所有可用 cpu 保留给它自己的 cpu 集。
然后,我在启动 dockerd 之前使用 cset shield --cpus 0-10
命令保留了 cpus 0~11。但它也没有用。 cpus被屏蔽了,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 不要为其 cpu 集使用保留的 cpus 但找不到如何。
如有任何意见或建议,我们将不胜感激。
我们可以将dockerd
配置设置为/etc/docker/daemon.json
。
我将 docker 的父 cgroup 设置为 /system
并且问题解决了:
# cat /etc/docker/daemon.json
{
"cgroup-parent": "/system"
}