在系统启动时为 Linux(debian)中的 init 进程设置亲和性掩码最方便的方法是什么?
我知道任务集,但我想在启动时为 init 设置亲和力掩码,这样所有进程都会继承它。
谢谢。
答案1
尝试“isolcpus”内核启动参数。您可以列出希望调度程序忽略的 CPU;未列出的 CPU 将有效地形成 init 及其所有子进程的掩码。然后,您可以通过 taskset 运行进程,将其放置在被忽略的 CPU 上。
答案2
通过将 init 及其子进程绑定到特定 CPU,您想要实现什么目的?您是否希望运行其他应用程序以将系统进程与应用程序 CPU 资源隔离开来?如果是这样,您可能需要研究建立 CPU 屏蔽。实时 Linux 发行版有可用于此目的的实用程序,但您可以尝试 CPU Set (cset) 实用程序,概述如下:
https://rt.wiki.kernel.org/index.php/Cpuset_management_utility/tutorial
默认情况下,创建屏蔽会将所有流程放在一个集合中,让您可以定义哪些重要流程应该移动到稍后定义的集合中。
这接近您所寻找的吗?
答案3
如果您只是想让您的机器启动得更慢,那么请尝试拉出一些 RAM 或损坏您的硬盘以禁用 DMA。
由于 init 是系统上的每个进程在启动时设置亲和性意味着您为每个进程设置亲和性 - 您肯定希望比这更有选择性?
也许,如果您通过设置亲和力提供更多有关您想要实现的目标的信息,那么就有可能做出合理的答案。