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