9.3.3. 在实时配置集中调整每个 NUMA 的内务操作
您可以在实时配置集中调整每个 NUMA 节点设置的内务 CPU。这通过确保内务务任务在 NUMA 节点之间平均分配,从而优化系统性能。
这对具有多个 NUMA 节点的系统特别有用,因为它有助于减少争用并改进整体性能。
默认 realtime tuned 配置集为每个 NUMA 节点保留一个内务 CPU (hk_per_numa=1)。如果需要更多可用于容器工作负载的 CPU,您可以修改此行为。
先决条件
- 主机在 Red Hat Enterprise Linux 9.6 或更高版本中运行。
-
tuned服务正在运行。 -
rteval容器已安装并运行。 -
podman服务正在运行。 -
已安装
tuned-profiles-realtime软件包。
流程
修改
realtime-variables.conf文件,以调整每个 NUMA 节点设置的内务 CPU。在文本编辑器中打开位于
/etc/tuned的realtime-variables.conf文件:$ sudo vi /etc/tuned/realtime-variables.conf找到
isolated_cores变量。默认情况下,这设置为1,这意味着每个 NUMA 节点保留了一个内核,用于隔离或非内部维护。您可以增加这个值,但它必须小于每个 NUMA 节点的 CPU 总数。以下示例将每个 NUMA 节点有 24 个内核的系统中将
isolated_cores设置为3:isolated_cores=${f:calc_isolated_cores:3}
- 保存您的更改并关闭该文件。
重新应用
tuned实时配置集:$ sudo tuned-adm profile realtime这会导致测试过程中产生 6 个 CPU (每个 NUMA 节点 3)生成负载,而系统则保留了
isolcpus集的剩余内核。此配置用于测量。在某些情况下,混合优先级配置可能会在自定义拓扑上部署容器,而不是在设置isolcpus上。或者,您可以手动指定自定义 CPU 范围,而不依赖于每个节点的自动计数。这样可确保对隔离内核的完整控制,从而更易于使用非统一拓扑或专用 CPU 布局调整系统。
验证
-
验证
realtime-variables.conf文件中的更改。 - 重启系统以应用更改。
查看
/proc/cmdline文件,以确认isolcpus设置:$ cat /proc/cmdline BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.XX.X-XX.X.X.el9_6.x86_64+rt root=/dev/mapper/rhel_rt--qe--11-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=00cbf36d-ffaa-4285-a381-5c1d868eb3e3 rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81 skew_tick=1 tsc=reliable rcupdate.rcu_normal_after_boot=1 isolcpus=managed_irq,domain,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 intel_pstate=disable nosoftlockup