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
isolated_cores=0-3,5,7
Copy to Clipboard Copied! 这将隔离内核 0、1、2、3、5 和 7。
在有 8 个内核的双插槽系统中,其中 NUMA 节点 0-3 和 NUMA 节点 1 具有内核 4-8,要为多线程应用程序分配两个内核,请指定:
isolated_cores=4,5
isolated_cores=4,5
Copy to Clipboard Copied! 这可防止任何用户空间线程分配给 CPU 4 和 5。
要为不相关的应用程序从不同的 NUMA 节点选择 CPU,请指定:
isolated_cores=0,4
isolated_cores=0,4
Copy to Clipboard Copied! 这可防止任何用户空间线程分配给 CPU 0 和 4。
使用
tuned-adm
工具激活实时TuneD
配置集。tuned-adm profile realtime
# tuned-adm profile realtime
Copy to Clipboard Copied! - 重启机器以使更改生效。
验证
在内核命令行中搜索
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
$ 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
Copy to Clipboard Copied!