是否可以防止 CPU 内核被 Linux 中的操作系统使用?maxcpus=<n>
引导参数可防止在操作系统中看到指定数量的内核。我希望所有内核都是可见的,但操作系统只使用一些内核来调度进程。
编辑:这是确保关键进程可以安排在一个核心上并且保持不是绝对重要但高度 CPU 密集型进程可以相互竞争其他核心所必需的。这是在 CentOS 6 上。
是否可以防止 CPU 内核被 Linux 中的操作系统使用?maxcpus=<n>
引导参数可防止在操作系统中看到指定数量的内核。我希望所有内核都是可见的,但操作系统只使用一些内核来调度进程。
编辑:这是确保关键进程可以安排在一个核心上并且保持不是绝对重要但高度 CPU 密集型进程可以相互竞争其他核心所必需的。这是在 CentOS 6 上。
使用
isolcpus
内核命令行上的参数将某些内核与用户空间任务隔离。引用内核启动参数文档:您可以禁用处理器,例如 (core0)
echo 0 > /sys/devices/system/cpu/cpu0/online
并启用echo 1 > /sys/devices/system/cpu/cpu0/online
您可以使用以下方式验证状态
cat /proc/cpuinfo
通用答案...直到您提供更多信息。
您可能希望使用为您的发行版选择的 CPU 隔离工具。此外,cgroups 可能是相关的,具体取决于您具体要完成的任务。
任务集和cpuset的区别
编辑:
您正在寻找 CPU 防护罩。在 EL6 上,您可能需要阅读 cgroups 以及
cgred
守护进程和cgconfig
包。例如:
/etc/cgconfig.conf:
上面的代码片段将“ppro-users”cgroup 中的进程限制为某些 CPU。我通过使用 cgred 包来识别和管理应该属于该 cgroup 的进程来增强它。
/etc/cgrules.conf