微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以使用 taskset 或 systemd CPUAffinity=0

如何解决可以使用 taskset 或 systemd CPUAffinity=0

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

[Service]
cpuAffinity=0

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

grep -i cpu /proc/$PID/status


我的问题是:

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

谢谢,

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。