0

我正在尝试查看是否可以将 dockerd 和 containerd 固定到 Linux 服务器上的核心 0,而将所有其他核心留给容器(使用 cpuset)。所以我在我的 systemd 单元上使用了这个:

[Service]
CPUAffinity=0

我注意到子进程也被固定到核心 0(tasket 手册解释这是预期的行为):

grep -i cpu /proc/$PID/status


我的问题是:

  1. 可以只固定父进程,但子进程可以使用 cpuset 在他们想要的地方运行
  2. 有没有人在做这个?我担心的是我想让一些敏感的进程不间断地工作,通过将中断和其他进程绑定到核心 0

谢谢,

4

1 回答 1

0

systemd 单元上的taskset、numactl 和'CPUAffinity' 将(如预期的那样)使分叉的进程被固定到特定的CPU。在等待容器执行时,我找不到 Docker 浪费资源的证据,所以我暂时让它不固定运行。

如果其他人有更好的答案,很高兴重新打开这个问题。

于 2021-03-08T09:32:31.783 回答