技术解析:Linux的NUMA 技术

互联网 | 编辑: 杨剑锋 2006-10-05 10:00:00转载 一键看全文

  NUMA(Non-Uniform Memory Access Architecture)系统在市场上的应用越来越广泛,许多厂商都成功推出了基于 NUMA 架构的服务器,本文重点讨论了当前 Linux 的 NUMA 技术,主要包括:存储管理、NUMA 调度和用户层的 API,并在 SGI 的 Altix 350 系统上进行了 NUMA 基本测试,对进行 Linux NUMA 技术的研究具有参考价值。
  
    一、引言
  
    随着科学计算、事务处理对计算机性能要求的不断提高,SMP(对称多处理器)系统的应用越来越广泛,规模也越来越大,但由于传统的 SMP 系统中,所有处理器都共享系统总线,因此当处理器的数目增大时,系统总线的竞争冲突加大,系统总线将成为瓶颈,所以目前 SMP 系统的 CPU 数目一般只有数十个,可扩展能力受到极大限制。NUMA 技术有效结合了 SMP 系统易编程性和 MPP(大规模并行)系统易扩展性的特点,较好解决了 SMP 系统的可扩展性问题,已成为当今高性能服务器的主流体系结构之一。目前国外著名的服务器厂商都先后推出了基于 NUMA 架构的高性能服务器,如 HP 的 Superdome、SGI 的 Altix 3000、IBM 的 x440、NEC 的 TX7、AMD 的Opteron 等。随着 Linux 在服务器平台上的表现越来越成熟,Linux 内核对 NUMA 架构的支持也越来越完善,特别是从 2.5 开始,Linux 在调度器、存储管理、用户级 API 等方面进行了大量的 NUMA 优化工作,目前这部分工作还在不断地改进,如新近推出的 2.6.7-RC1 内核中增加了 NUMA 调度器。本文主要从存储管理、调度器和 CpuMemSets 三个方面展开讨论。
  
    二、NUMA 存储管理
  
    NUMA 系统是由多个结点通过高速互连网络连接而成的,如图 1 是 SGI Altix 3000 ccNUMA 系统中的两个结点。 
  
     
    图 1 SGI Altix3000 系统的两个结点
  
    NUMA 系统的结点通常是由一组 CPU(如,SGI Altix 3000 是 2 个Itanium2 CPU)和本地内存组成,有的结点可能还有I/O子系统。由于每个结点都有自己的本地内存,因此全系统的内存在物理上是分布的,每个结点访问本地内存和访问其它结点的远地内存的延迟是不同的,为了减少非一致性访存对系统的影响,在硬件设计时应尽量降低远地内存访存延迟(如通过 Cache 一致性设计等),而操作系统也必须能感知硬件的拓扑结构,优化系统的访存。
  
   目前 IA64 Linux 所支持的 NUMA 架构服务器的物理拓扑描述是通过 ACPI(Advanced Configuration and Power Interface)实现的。ACPI 是由 Compaq、Intel、Microsoft、Phoenix 和 Toshiba 联合制定的 BIOS 规范,它定义了一个非常广泛的配置和电源管理,目前该规范的版本已发展到 2.0,3.0 版本正在制定中,具体信息可以从 http://www.acpi.info 网站上获得。ACPI 规范也已广泛应用于 IA-32 架构的至强服务器系统中。

提示:试试键盘 “← →” 可以实现快速翻页 

总共 4 页1234
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑