【问题标题】:How to restrict a CPU core to only 2 applications using Linux scheduler?如何使用 Linux 调度程序将 CPU 内核限制为仅 2 个应用程序?
【发布时间】:2021-07-02 19:29:11
【问题描述】:

我想研究一个 CPU 内核上两个应用程序之间的交互,一个是持久应用程序(NVM 驻留),另一个是常规应用程序(DRAM 驻留)。为此,我只想将这两个应用程序安排在一个核心上,而不是其他任何东西。我正在寻找 Linux 调度程序来完成此任务。有人可以帮我找到实现这一目标的方向吗?我是否可以使用 sched 来实现这一点,或者我是否需要修改内核的调度程序代码,以便调度程序不会将应用程序调度到我感兴趣的核心。

【问题讨论】:

    标签: linux linux-kernel scheduler scheduling


    【解决方案1】:

    可以使用内核的isolcpus命令行参数:

    此选项可用于指定一个或多个 CPU 以与一般 SMP 平衡和调度算法隔离。您可以通过 CPU 关联系统调用或 cpuset 将进程移入或移出“隔离的”CPU。

    【讨论】:

      【解决方案2】:

      isolcpus 是一种解决方案,但 linux kernel documentation 声明它已弃用:

      isolcpus= [KNL,SMP,ISOL] 将一组给定的 CPU 与干扰隔离。
      [已弃用 - 改用 cpuset]

      cgroups 的 cpuset 子系统更可取。 partrt 之类的工具基于此原则将 CPU 内核划分为两个子集:nrt 运行所有进程,rt 您可以将应用程序移入其中。因此,应用程序在某些 CPU 内核上是隔离的。

      【讨论】:

      • 感谢您的帮助,也感谢您的错字更正 :) @Rachid
      猜你喜欢
      • 2014-05-27
      • 2023-02-10
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      相关资源
      最近更新 更多