是否可以在我的 Linux 机器上运行仅使用 16 个 CPU 中的 2 个 CPU 的进程

是否可以在我的 Linux 机器上运行仅使用 16 个 CPU 中的 2 个 CPU 的进程

是否可以在我的 Linux 机器上运行仅使用 16 个 CPU 中的 2 个 CPU 的进程

我们有红帽机器版本 6,我们有 16 个 CPU

但是因为许可证需要花钱,如果我们限制脚本只能在 2 个 CPU 上运行,那么我们可以省钱

答案1

您可以将进程限制为在特定(一组)核心上运行:taskset

taskset 3 mycommand

3是一个位掩码,意味着mycommand只能在内核 0 和 1 上运行。)

但是,这不会改变进程认为您拥有的 CPU 数量。它只是向内核发出的一条指令,不要在位掩码中列出的 CPU 之外的 CPU 上调度进程。因此,如果程序根据 CPU 数量进行许可证检查,这可能不会有帮助。

一个肯定可行的解决方案是在只有 2 个(虚拟)核心的虚拟机中运行该进程。然而,这可能会降低性能。

C组提供了一种限制进程可以使用的资源的中间方法。我不知道它是否可以有效地从进程中隐藏CPU,或者它是否只是像taskset.

相关内容