25.2. 使用 TuneD 的 isolated_cores 选项隔离 CPU
隔离 CPU 的初始机制是在内核引导命令行中指定 boot 参数 isolcpus=cpulist。为 RHEL for Real Time 执行此操作的建议方法是使用 TuneD 守护进程及其 tuned-profiles-realtime 软件包。
在 tuned-profiles-realtime 版本 2.19 及更高版本中,内置函数 calc_isolated_cores 会自动应用初始 CPU 设置。/etc/tuned/realtime-variables.conf 配置文件包含默认变量内容为 isolated_cores=${f:calc_isolated_cores:2}。
默认情况下,calc_isolated_cores 为每个插槽保留一个内核,用于内务处理并隔离其余内核。如果必须更改默认配置,请在 /etc/tuned/realtime-variables.conf 配置文件中注释掉 isolated_cores=${f:calc_isolated_cores:2} 行,并按照流程步骤使用 TuneD 的 isolated_cores 选项隔离 CPU。
先决条件
-
TuneD和tuned-profiles-realtime软件包已安装。 - 您在系统上具有 root 权限。
流程
-
以 root 用户身份,在文本编辑器中打开
/etc/tuned/realtime-variables.conf。 设置
isolated_cores=cpulist,以指定您要隔离的 CPU。您可以使用 CPU 编号和范围。示例:
isolated_cores=0-3,5,7这将隔离内核 0、1、2、3、5 和 7。
在有 8 个内核的双插槽系统中,其中 NUMA 节点 0-3 和 NUMA 节点 1 具有内核 4-8,要为多线程应用程序分配两个内核,请指定:
isolated_cores=4,5这可防止任何用户空间线程分配给 CPU 4 和 5。
要为不相关的应用程序从不同的 NUMA 节点选择 CPU,请指定:
isolated_cores=0,4这可防止任何用户空间线程分配给 CPU 0 和 4。
使用
tuned-adm工具激活实时TuneD配置集。# tuned-adm profile realtime- 重启机器以使更改生效。
验证
在内核命令行中搜索
isolcpus参数:$ cat /proc/cmdline | grep isolcpus BOOT_IMAGE=/vmlinuz-6.12.0-55.9.1.el10_0.x86_64 root=/dev/mapper/rhel_foo-root ro crashkernel=auto rd.lvm.lv=rhel_foo/root rd.lvm.lv=rhel_foo/swap console=ttyS0,115200n81 isolcpus=0,4