我试图寻找解决方案,但我发现的只是如何使用 taskset 或 sched_setaffinity 将进程固定到 CPU。但看起来这不会给进程独占 CPU 的访问权限,即调度程序可能会在此 CPU 上分配其他进程。有什么方法或命令可以确保 CPU 专用于进程?使用 taskset,我们可以确保特定进程仅在特定 CPU 上运行,但我也希望它以其他方式运行,即 CPU 绑定到该进程。我发现了诸如如何分配进程特定数量的 CPU 功率之类的问题?以及如何在 Linux 中将进程限制为一个 CPU 内核?但它们被标记为如何在 Linux 上设置进程的处理器关联?这不是我想要的。
您需要从整体调度中排除一个 CPU,之后您可以通过以下方式将进程分配给它
taskset
Run Code Online (Sandbox Code Playgroud)
正如你已经发现的那样。要排除 CPU,请添加引导参数
isolcpus=N
Run Code Online (Sandbox Code Playgroud)
数字 (N) 从 0 开始。