4.4. 红帽企业版 Linux 6 中 NUMA 的改进

红帽企业版 Linux 6 包括大量改进以便充分利用当今高度可扩展的硬件。本小节对由红帽企业版 Linxu 6 提供的大多数与 NUMA 相关的重要性能改进进行概述。

4.4.1. 裸机和可扩展性优化

4.4.1.1. 拓扑识别改进

以下改进可让红帽企业版 Linux 探测底层硬件和架构详情,提高其在系统中进行自动优化的功能。
提高的拓扑探测
这可让操作系统探测到引导时的底层硬件详情(比如逻辑 CPU,超线程,核,插槽,NUMA 节点以及节点间访问时间),并优化系统进程。
完全公平调度程序
这个新的调度模式可以保证在有效进程间平均分配运行时间。这个模式与拓扑探测联合使用可将进程在同一插槽的 CPU 中调度以避免昂贵的远程内存访问,同时保证随时保留缓存内容。
malloc
malloc 现在已经优化,可保证分配给某个进程的内存区尽量接近执行该内存的核。这样可以增加内存访问速度。
skbuff I/O 缓存分配
malloc 类似,现已将其优化为使用与处理 I/O 操作(比如设备中断)的 CPU 最接近的内存。
设备中断亲和性
设备驱动程序记录的关于哪个 CPU 处理哪个中断的信息可用来限制在同一物理插槽中的 CPU 处理的中断,保留缓存亲和性并限制高容量跨插槽通讯。

4.4.1.2. 改进多核处理器同步

协调多个处理器之间的任务需要频繁、耗时的操作以便保证平行执行的进程不会损害数据完整性。红帽企业版 Linux 包括以下改进以提高此方面的性能:
读-拷贝-更新(RCU)锁
通常 90% 的锁定是用于只读目的。RCU 锁定移除了在未修改数据访问时获得独家访问锁定的要求。这个锁定模式现已用于页缓存分配:现在锁定只可用于分配或者取消分配动作。
按 CPU 以及按插槽进行计算的算法
很多算法已更新至在同一插槽的合作 CPU 之间执行锁定协作以便允许更细致地调整锁定。大量全局自旋锁已使用按插槽锁定方法替换,且更新的内存分配程序区以及相关的内存页列表可在执行分配或者取消分配操作时让内存分配逻辑贯穿更有效的内存匹配数据结构子集。

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。