第 1 章 安装 RHEL for Real Time
很多行业和机构需要非常高的计算性能,并需要低且可预测的延迟,特别是银行和电信业。延迟(或响应时间)定义为事件和系统响应之间的时间,通常以 microseconds (μs) 衡量。
对于在 Linux 环境中运行的大多数应用程序,基本的性能调优可以满足对性能提高的要求。但对于一些行业,延迟不仅需要非常低,并且需要可以被预测和管理。红帽开发了一个相应的替换内核来满足这个要求。RHEL for Real Time 作为 RHEL 9 的一部分发布,提供与 RHEL 9 的无缝集成。通过 RHEL for Real Time,用户可以在其机构中测量、配置和记录延迟。
在安装 RHEL for Real Time 前,请确定正确调整基本平台,并调整系统 BIOS 参数。如果没有执行这些任务,则可能会阻止 RHEL Real Time 部署获得一致的性能。
1.1. 通过 RHEL for Real Time 优化延迟
RHEL for Real Time 的设计宗旨时,对应用程序提供精心调优的系统,以满足这些应用程序对极高确定性的要求。内核系统调优在确定性方面提供了大量改进。
例如,在很多工作负载中,通过全面的系统调优,可以获得大约 90% 的性能改进。因此,在使用 RHEL for Real Time 前,,我们建议客户首先执行标准的 RHEL 系统调整,看它是否可以满足对性能的要求。
进行系统调优对于使用 Real Time kernel 的系统同样是非常重要的。在运行作为 RHEL 9 版本的一部分所提供的、没有进行过性能调优的标准内核系统上安装 Real Time 内核可能并不会获得显著的性能改进。调优标准内核将可能对延迟产生 90% 的改进。对于对延迟有非常高要求的工作负载,Real Time 内核提供了最后 10% 的延迟改进。
在调整 Real Time 内核系统前,请确定已对基本系统进行了正确的调优,并调整了系统 BIOS 参数。如果没有执行这些任务,则可能会阻止 RHEL Real Time 部署获得一致的性能。
Real Time 内核的目的是,提供一致的、低延迟的、具有可预测的响应时间的内核。在系统中,会存在与实时内核关联的额外内核开销。这是因为在单独调度的线程中处理硬件中断。某些增加的工作负载开销会导致整个吞吐量下降。具体数量取决于工作负载,范围从 0% 到 30%。
对于典型的工作负载需要 millisecond (ms) 级别的延迟要求的环境,标准 RHEL 9 内核就足够了。但是,如果您的工作负载对核心内核功能(如中断处理)有严格的低延迟要求,需要满足 microsecond (μs) 级别的要求,则需要使用 Real Time 内核。
此图分别比较了一百万个使用 RHEL 9 和 RHEL for Real Time 内核的机器样本。
- 此图中的蓝色点代表已进行调优的 RHEL 9 内核的机器的系统响应时间(以 microseconds 为单位)。
- 图中的绿色点代表运行已调优的实时内核的机器的响应时间。
此图明确显示,Real Time 内核的响应时间非常一致,而标准内核的响应时间会根据不同的负载有很大的变化。