我有一对CentOS 7服务器(7.9.2009),每个服务器有8个物理CPU。从中,我试图隔离核心4-8 (所以3-7操作系统看到他们)。
我在isolcpus=3-7
参数之后将标记GRUB_CMDLINE_LINUX
添加到/etc/default/grub
中,运行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
我完全不知道是什么原因造成的,以及如何解决这一问题-任何提示都将不胜感激。
谢谢!
发布于 2022-03-02 04:40:43
第二台服务器上的CPU 0-3在哪里?
基于numactl输出,由于某种原因,似乎只有4-7联机,如果要隔离它,那么内核就忽略了您的isolcpus参数,因为您无法隔离引导CPU。也许可以尝试isolcpus=0-3,5-7
或isolcpus=5-7
来确认。请注意,通过上一个在线CPU隔离CPU也可能产生同样的效果,但也取决于提供给内核的硬件信息,因此它在某些情况下可能工作,而在其他情况下则不起作用。
来自这两台服务器的lscpu -p
输出将有助于进一步排除故障。还可以在启动后在dmesg中查找任何与cpus或isolcpus命令行选项相关的不寻常消息。
https://unix.stackexchange.com/questions/686575
复制相似问题