第 1 章 用于 RHEL 的硬件平台( Real Time)
在设置实时环境时,正确配置硬件会扮演重要角色,因为硬件会影响您的系统运行方式。并非所有硬件平台都能够实时启用微调。在进行调优之前,您必须确保潜在的硬件平台能够实时。
硬件平台因供应商而异。您可以使用硬件延迟检测器(hwlatdetect
)程序测试并验证硬件是否适合性。程序控制延迟 detector 内核模块,并有助于检测底层硬件或固件行为造成的延迟。
完成低延迟操作所需的任何调整步骤。具体步骤请参阅厂商文档。
先决条件
- 已安装 RHEL-RT 软件包。
完成低延迟操作所需的任何调整步骤。有关减少或删除将系统过渡到系统管理模式(SMM)的任何系统管理中断(SMI)的说明,请参阅厂商文档。
警告红帽建议不要完全禁用系统管理中断(SMI),因为它可能会导致灾难性硬件故障。
1.1. 处理器内核
实时处理器内核是物理中央处理单元(CPU),它执行机器代码。套接字是处理器和计算机的主板之间的连接。套接字是处理器所放入的主板上的位置。有两组处理器:
- 使用一个可用内核占用一个插槽的单一核心处理器。
- 占用 4 个可用内核的插槽的四核处理器。
在设计实时环境时,请注意可用内核数、内核之间的缓存布局以及核心如何进行物理连接。
当有多个内核可用时,请使用线程或进程。在不使用这些构造的情况下编写程序,一次在单个处理器上运行。多核平台通过将不同的内核用于不同类型的操作来提供优势。
缓存
缓存对总体处理时间和确定性造成显著影响。通常,应用的线程需要同步对共享资源的访问权限,如数据结构。
使用 tuna
命令行工具(CLI),您可以确定缓存布局并将交互的线程绑定到核心,以便它们共享缓存。缓存共享通过确保相互排除原语(mutex、condition 变量或类似数据)来减少内存故障,数据结构使用相同的缓存。
互连
增加系统上的内核数量可能会导致相互冲突的要求。这使得有必要确定互连拓扑,以帮助检测实时系统内核间的冲突。
现在,许多硬件厂商在内核和内存(称为非统一内存访问(NUMA)架构)之间提供透明的互连网络。
NUMA 是一个在多处理中使用的系统内存设计,内存访问时间取决于与处理器相关的内存位置。使用 NUMA 时,处理器可以比非本地内存快访问自己的本地内存,如处理器或处理器共享内存或内存。在 NUMA 系统中,了解互连拓扑有助于设置在相邻内核上经常通信的线程。
taskset
和 numactl
实用程序决定 CPU 拓扑。taskset
定义没有 NUMA 资源(如内存节点和 numactl
)的 CPU 关联性,控制进程和共享内存的 NUMA 策略。