CentOS 7 - 隔离核心在实践中并未隔离

CentOS 7 - 隔离核心在实践中并未隔离

我有一对 CentOS 7 服务器(2009 年 9 月 7 日),每台服务器有 8 个物理 CPU。其中,我试图隔离核心 4-8(操作系统认为是 3-7)。

我将标签添加isolcpus=3-7到参数/etc/default/grub后面GRUB_CMDLINE_LINUX,运行grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg生成新的配置文件并重新启动。

两台服务器都遵循该设置,如/sys/devices/system/cpu/isolated- 它显示了我指定的核心 3-7。

然而,关于在服务器中,只有一个所谓的核心在其上运行系统进程(systemd等等lvmetad) - 尽管多次重新启动,操作系统在实践中似乎并不尊重核心隔离。

我使用该numactl命令查看哪些核心也被隔离,并且服务器之间的输出确实有所不同(命令是numactl -s | grep physcpubind

服务器 1(尊重隔离):

physcpubind: 0 1 2 3

服务器 2(不尊重隔离):

physcpubind: 4 5 6 7

我对可能导致此问题的原因以及如何解决此问题感到非常困惑 - 任何提示将不胜感激。

谢谢你!

答案1

第二台服务器上的 CPU 0-3 在哪里?

根据您的 numactl 输出,由于某种原因,您似乎只有 4-7 个在线,如果您将其隔离,那么内核将忽略您的 isolcpus 参数,因为您无法隔离启动 CPU。也许尝试isolcpus=0-3,5-7isolcpus=5-7确认。请注意,隔离最后一个在线 CPU 之后的 CPU 也可以具有相同的效果,但也取决于提供给内核的硬件信息,因此它可能在某些情况下有效,但在其他情况下无效。

lscpu -p两台服务器的输出将有助于进一步排除故障。启动后还要查看 dmesg 中是否有与 cpus 或 isolcpus 命令行选项相关的任何异常消息。

相关内容