博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3485|回复: 4

AMD的NUMA架构处理器好

[复制链接]
发表于 2011-2-5 16:25:42 | 显示全部楼层 |阅读模式
AMD的NUMA架构处理器

AMD虽然是处理器行业的后起之秀,其NUMA架构和INTEL的SMP架构完全不同,消除了总线瓶颈,其设计思路和高端多路服务器相似。我注意到SUN的产品线里除了自己的高端UNIX服务器外,PC服务器只有AMD的,是不是因为SUN对AMD的后续发展更有信心?

另外的一个趋势是INTEL在其后续产品中逐渐放弃了单总线架构,逐步采用双总线,对于MP来说就是两条总线,对于DP来说就是每个CPU占用一条总线。

虽然INTEL坚持自己的设计思路要好于AMD,但看来似乎不得不承认,INTEL的SMP最终还是要发展到AMD的NUMA架构上去。






SMP、NUMA、MPP体系结构介绍【转】
从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA Non-Uniform Memory Access) ,以及海量并行处理结构 (MPP Massive Parallel Processing) 。它们的特征分别描述如下:
    SMP(Symmetric Multi-Processor)
  所谓对称多处理器结构,是指服务器中多个 CPU 对称工作,无主次或从属关系。各 CPU 共享相同的物理内存,每个 CPU 访问内存中的任何地址所需时间是相同的,因此 SMP 也被称为一致存储器访问结构 (UMA Uniform Memory Access) 。对 SMP 服务器进行扩展的方式包括增加内存、使用更快的 CPU 、增加 CPU 、扩充 I/O( 槽口数与总线数 ) 以及添加更多的外部设备 ( 通常是磁盘存储 )
   SMP 服务器的主要特征是共享,系统中所有资源 (CPU 、内存、 I/O ) 都是共享的。也正是由于这种特征,导致了 SMP 服务器的主要问题,那就是它的扩展能力非常有限。对于 SMP 服务器而言,每一个共享的环节都可能造成 SMP 服务器扩展时的瓶颈,而最受限制的则是内存。由于每个 CPU 必须通过相同的内存总线访问相同的内存资源,因此随着 CPU 数量的增加,内存访问冲突将迅速增加,最终会造成 CPU 资源的浪费,使 CPU 性能的有效性大大降低。实验证明, SMP 服务器 CPU 利用率最好的情况是 2 4 CPU

1.SMP 服务器 CPU 利用率状态


NUMA(Non-Uniform Memory Access)
  由于 SMP 在扩展能力上的限制,人们开始探究如何进行有效地扩展从而构建大型系统的技术, NUMA 就是这种努力下的结果之一。利用 NUMA 技术,可以把几十个 CPU( 甚至上百个 CPU) 组合在一个服务器内。其 CPU 模块结构如图 2 所示:  

2.NUMA 服务器 CPU 模块结构

NUMA 服务器的基本特征是具有多个 CPU 模块,每个 CPU 模块由多个 CPU( 4 ) 组成,并且具有独立的本地内存、 I/O 槽口等。由于其节点之间可以通过互联模块 ( 如称为 Crossbar Switch) 进行连接和信息交互,因此每个 CPU 可以访问整个系统的内存 ( 这是 NUMA 系统与 MPP 系统的重要差别 ) 。显然,访问本地内存的速度将远远高于访问远地内存 ( 系统内其它节点的内存 ) 的速度,这也是非一致存储访问 NUMA 的由来。由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同 CPU 模块之间的信息交互。

利用 NUMA 技术,可以较好地解决原来 SMP 系统的扩展问题,在一个物理服务器内可以支持上百个 CPU 。比较典型的 NUMA 服务器的例子包括 HP Superdome SUN15K IBMp690 等。


  但 NUMA 技术同样有一定缺陷,由于访问远地内存的延时远远超过本地内存,因此当 CPU 数量增加时,系统性能无法线性增加。如 HP 公司发布 Superdome 服务器时,曾公布了它与 HP 其它 UNIX 服务器的相对性能值,结果发现, 64 CPU Superdome (NUMA 结构 ) 的相对性能值是 20 ,而 8 N4000( 共享的 SMP 结构 ) 的相对性能值是 6.3 。从这个结果可以看到, 8 倍数量的 CPU 换来的只是 3 倍性能的提升。  

3.MPP 服务器架构图


    MPP(Massive Parallel Processing)
  和 NUMA 不同, MPP 提供了另外一种进行系统扩展的方式,它由多个 SMP 服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个 SMP 服务器 ( 每个 SMP 服务器称节点 ) 通过节点互联网络连接而成,每个节点只访问自己的本地资源 ( 内存、存储等 ) ,是一种完全无共享 (Share Nothing) 结构,因而扩展能力最好,理论上其扩展无限制,目前的技术可实现 512 个节点互联,数千个 CPU 。目前业界对节点互联网络暂无标准,如 NCR Bynet IBM SPSwitch ,它们都采用了不同的内部实现机制。但节点互联网仅供 MPP 服务器内部使用,对用户而言是透明的。
  在 MPP 系统中,每个 SMP 节点也可以运行自己的操作系统、数据库等。但和 NUMA 不同的是,它不存在异地内存访问的问题。换言之,每个节点内的 CPU 不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配 (Data Redistribution)
  但是 MPP 服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。目前一些基于 MPP 技术的服务器往往通过系统级软件 ( 如数据库 ) 来屏蔽这种复杂性。举例来说, NCR Teradata 就是基于 MPP 技术的一个关系数据库软件,基于此数据库来开发应用时,不管后台服务器由多少个节点组成,开发人员所面对的都是同一个数据库系统,而不需要考虑如何调度其中某几个节点的负载。
   NUMA MPP 的区别
  从架构来看, NUMA MPP 具有许多相似之处:它们都由多个节点组成,每个节点都具有自己的 CPU 、内存、 I/O ,节点之间都可以通过节点互联机制进行信息交互。那么它们的区别在哪里?通过分析下面 NUMA MPP 服务器的内部架构和工作原理不难发现其差异所在。
  首先是节点互联机制不同, NUMA 的节点互联机制是在同一个物理服务器内部实现的,当某个 CPU 需要进行远地内存访问时,它必须等待,这也是 NUMA 服务器无法实现 CPU 增加时性能线性扩展的主要原因。而 MPP 的节点互联机制是在不同的 SMP 服务器外部通过 I/O 实现的,每个节点只访问本地内存和存储,节点之间的信息交互与节点本身的处理是并行进行的。因此 MPP 在增加节点时性能基本上可以实现线性扩展。
  其次是内存访问机制不同。在 NUMA 服务器内部,任何一个 CPU 可以访问整个系统的内存,但远地访问的性能远远低于本地内存访问,因此在开发应用程序时应该尽量避免远地内存访问。在 MPP 服务器中,每个节点只访问本地内存,不存在远地内存访问的问题。
  数据仓库的选择
  哪种服务器更加适应数据仓库环境?这需要从数据仓库环境本身的负载特征入手。众所周知,典型的数据仓库环境具有大量复杂的数据处理和综合分析,要求系统具有很高的 I/O 处理能力,并且存储系统需要提供足够的 I/O 带宽与之匹配。而一个典型的 OLTP 系统则以联机事务处理为主,每个交易所涉及的数据不多,要求系统具有很高的事务处理能力,能够在单位时间里处理尽量多的交易。显然这两种应用环境的负载特征完全不同。
  从 NUMA 架构来看,它可以在一个物理服务器内集成许多 CPU ,使系统具有较高的事务处理能力,由于远地内存访问时延远长于本地内存访问,因此需要尽量减少不同 CPU 模块之间的数据交互。显然, NUMA 架构更适用于 OLTP 事务处理环境,当用于数据仓库环境时,由于大量复杂的数据处理必然导致大量的数据交互,将使 CPU 的利用率大大降低。
  相对而言, MPP 服务器架构的并行处理能力更优越,更适合于复杂的数据综合分析与处理环境。当然,它需要借助于支持 MPP 技术的关系数据库系统来屏蔽节点之间负载平衡与调度的复杂性。另外,这种并行处理能力也与节点互联网络有很大的关系。显然,适应于数据仓库环境的 MPP 服务器,其节点互联网络的 I/O 性能应该非常突出,才能充分发挥整个系统的性能。
 楼主| 发表于 2011-2-5 16:26:03 | 显示全部楼层
为什么虚拟化在AMD皓龙处理器上运行速度更快[复制本帖链接]
  随着虚拟化在数据中心的广泛采用,硬件供应商开始推出专为虚拟化主机而设计的系统。例如戴尔的R805 和 R905服务器系统具备几种关键特性,有助于虚拟化软件发挥最佳性能。(注意,虽然我因为使用过戴尔的系统而在文章中提到,但是要注意HP BladeSystem BL495c 和HP ProLiant DL385G5p系统同样也可以对虚拟化负载加以优化。)这些系统拥有高速的处理器、极大的内存以及卓越的I/O性能,尤其是网络带宽方面。本文将要展开讨论这些性能特点,并阐述在同等配置的系统上基于AMD皓龙™处理器的系统性能要比使用其他x86处理器的系统性能表现更为卓越的原因。

  虚拟化主机就是运行管理程序软件基础的服务器,而管理程序软件则运行虚拟机。大部分主机会运行几个到大约30个的虚拟机。一些主机能够运行30多个虚拟机,但是它们在当今的IT业中很罕见。为了正常运行大量虚拟机,主机必须具备我之前讨论过的性能特点。让我们了解一些详细信息。

  • 大量的内存。当虚拟机启动时,其配置中指定的所有内存通常会被分配并保持锁定状态,直到虚拟机关闭。这样也许看起来是浪费内存,但实际上它将所有的虚拟机内存放入单一的内存分配块中(如果可能的话),从而有助于提高性能。该设计还可保证虚拟机拥有配置给它的所有内存。这种所谓的“贪心”的分配方式的不足之处是运行较多的虚拟机的主机需要大量内存。16GB对于虚拟化主机来说实在是其RAM容量的最低点了,32GB才是说得过去的最低值。

  • 网络I/O容量。多数主机并不在本地存储虚拟机数据。原因很明确:可扩展性。如果主机支持虚拟机使用本地硬盘,一个或两个磁盘密集型虚拟机就会让其他虚拟机没有磁盘空间可用。因此,数据就以远程方式被保存在SAN或其他企业存储器中。要来回传输数据,就需要大的网络通道,可以是GbE卡或者光纤通道适配器。为此,Dell R905服务器配备了4个内置GbE适配器,和7个针对不同适配器的PCIe插槽,包括光纤通道所指用的插槽。

  • 高效的处理器:当多个虚拟机同时运行时,它们将在主机上共享处理器。如果只有少数几个虚拟机运行时,这种资源竞争可由处理器的多个核心来处理——根据需求和可用性,为每个虚拟机分配一个或两个核心。当虚拟机数目多于可用核心时,管理程序必须让虚拟机进进出出,让它们能够短暂地访问处理器。为了达到此目的,处理器不仅要快,还必须执行特定的功能,特别是是内存管理方面,需要很有效地为虚拟机提供所需的性能。

  为了进行处理器共享、网络化I/O和内存分配,许多企业级管理程序,例如VMware 的VI3中的管理程序,能够接管许多通常由操作系统处理的功能。实际上,VI3被设计在针对其特制的Linux®内核里,而内核则安装在主机系统的裸机上。(本文最后的“资源”一节中提供了下载VMware ESXi server——即在VI3中运行的管理程序——的链接,以及其他可下载管理程序的链接。)

  管理程序是多种软件的组合,需要在很大程度上依赖它们下面的硬件。正是由于这个原因,AMD和其他x86处理器供应商在处理器硅片上增加相应的技术,从而易于处理一些难度较大的操作。这些有助于管理程序解决一些特定的权限难题,特别是运行时可能出现的处理器琐机现象。这一进步使得虚拟化的性能真正腾飞,最终开始达到足够接近原来物理机的性能水平,从而使得其间的差异不再是人们接受的障碍。

  AMD便于虚拟化的内存管理

  AMD皓龙处理器一直以其直接在芯片上配备内存控制器而与众不同。该设计允许处理器解决其自己的内存提取问题;无需向芯片组部件发送请求,然后再通过内存总线将其送回,从而取回数据。当系统有多个核心时,AMD的这种设计优势就会成比例的增加,该配置也是虚拟主机所必需的。

  在非AMD x86设计中,来自所有处理器的内存请求都沿着内存总线而汇聚,如果内存访问量大就会导致严重的延迟。在AMD设计中,如果内存地址在处理器负责的内存区域内,那么每个芯片则处理自己的请求。如果地址在芯片组指定的内存外,请求则会通过高速连接到合适的内存管理器传输。就系统架构而言,基于AMD处理器的设计被称为NUMA,是一种非统一内存架构。非统一是指在处理器的专用RAM中执行内存提取比其他内存提取更快,这要归功于专用的片上内存管理器。

  当今的管理程序充分利用了AMD的NUMA架构。在可能的范围内,它们会通过协调将虚拟机安排到由单一处理器管理的内存范围内,从而使虚拟机进行的所有内存访问都由内存管理器在本地处理。该步骤与采用内存总线的方法相比,有助于减少内存提取的延迟。

  AMD的其他秘密武器

  还有一些其他的硬件功能让管理程序在四核AMD皓龙处理器上快速运行。这些是AMD虚拟化™ (AMD-V™)技术最新添加的功能,使该公司虚拟化技术性能增强。其中第一个独特优势就是嵌套分页(nested paging),这需要解释一下。

  x86系统中的内存地址并非由指向特定字节的顺序性字节数。事实上,地址包含一系列数位,这些数位一个由表构成的序列,这些表确定了内存中的特定页面以及该页面内的字节数。如果该页面目前在内存中,它就是被访问过的;否则该页面就从它存储所在的设备中记调进来。这一做法使得页面可以被置换到磁盘中,并在必要时再取回。(这也就意味着可以存在超过物理内存所能容纳的数量的内存页面,这正是因为置换功能在起作用)。如果地址只能指向一个物理字节数,那么内存就无法来回置换。

  这个通过踏遍页面表中的条目(称为“页面漫步”,page walking)来解析地址的过程颇为费时。在虚拟化环境下,页面漫步尤其复杂。管理程序必须在几个点上中断“漫步”过程并追踪单独的一系列所谓的“影子页面”( shadow pages),这样它就能够准确而快速地将虚拟机的理想内存位置映射到管理程序能够检索的位置上。在某些情况下,管理地址解析的费用可占到管理程序经常性支出的50%。

  为了降低这一经常性支出,AMD虚拟化推出了快速虚拟化索引(RVI)技术,又称为嵌套分页表(NPT,nested page table),这是一个在页面漫步过程中访问的含有虚拟机到物理字节地址的映射的表。通过将NPT添加到页面漫步中,AMD虚拟化消除了 管理程序使用影子页面来管理虚拟机到物理地址的解析这一要求。这样一来,地址通常可以更快地解析。
 楼主| 发表于 2011-2-5 16:29:23 | 显示全部楼层
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 架构的至强服务器系统中。
  
  Linux 对 NUMA 系统的物理内存分布信息是从系统 firmware 的 ACPI 表中获得的,最重要的是 SRAT(System Resource Affinity Table)和 SLIT(System Locality Information Table)表,其中 SRAT 包含两个结构:
  
  Processor Local APIC/SAPIC Affinity Structure:记录某个 CPU 的信息;
  
  Memory Affinity Structure:记录内存的信息;
  SLIT 表则记录了各个结点之间的距离,在系统中由数组 node_distance[ ] 记录。
  
  Linux 采用 Node、Zone 和页三级结构来描述物理内存的,如图 2 所示
    
   图 2 Linux 中 Node、Zone 和页的关系
  2.1 结点
  
  Linux 用一个 struct pg_data_t 结构来描述系统的内存,系统中每个结点都挂接在一个 pgdat_list 列表中,对 UMA 体系结构,则只有一个静态的 pg_data_t 结构 contig_page_data。对 NUMA 系统来说则非常容易扩充,NUMA 系统中一个结点可以对应 Linux 存储描述中的一个结点,具体描述见 linux/mmzone.h。
  
  typedef struct pglist_data {
  zone_t node_zones[MAX_NR_ZONES];
  zonelist_t node_zonelists[GFP_ZONEMASK+1];
  int nr_zones;
  struct page *node_mem_map;
  unsigned long *valid_addr_bitmap;
  struct bootmem_data *bdata;
  unsigned long node_start_paddr;
  unsigned long node_start_mapnr;
  unsigned long node_size;
  int node_id;
  struct pglist_data *node_next;
  } pg_data_t;
  
  下面就该结构中的主要域进行说明
    
  系统中所有结点都维护在 pgdat_list 列表中,在 init_bootmem_core 函数中完成该列表初始化工作。
  
  2.2 Zone
  
  每个结点的内存被分为多个块,称为zones,它表示内存中一段区域。一个zone用struct_zone_t结构描述,zone的类型主要有ZONE_DMA、ZONE_NORMAL和ZONE_HIGHMEM。ZONE_DMA位于低端的内存空间,用于某些旧的ISA设备。ZONE_NORMAL的内存直接映射到Linux内核线性地址空间的高端部分,许多内核操作只能在ZONE_NORMAL中进行。例如,在X86中,zone的物理地址如下:
    
  Zone是用struct zone_t描述的,它跟踪页框使用、空闲区域和锁等信息,具体描述如下:
  
  typedef struct zone_struct {
  spinlock_t lock;
  unsigned long free_pages;
  unsigned long pages_min, pages_low, pages_high;
  int need_balance;
  free_area_t free_area[MAX_ORDER];
  wait_queue_head_t * wait_table;
  unsigned long wait_table_size;
  unsigned long wait_table_shift;
  struct pglist_data *zone_pgdat;
  struct page *zone_mem_map;
  unsigned long zone_start_paddr;
  unsigned long zone_start_mapnr;
  char *name;
  unsigned long size;
  } zone_t;
  
  下面就该结构中的主要域进行说明
  
  当系统中可用的内存比较少时,kswapd将被唤醒,并进行页交换。如果需要内存的压力非常大,进程将同步释放内存。如前面所述,每个zone有三个阈值,称为pages_low,pages_min和pages_high,用于跟踪该zone的内存压力。pages_min的页框数是由内存初始化free_area_init_core函数,根据该zone内页框的比例计算的,最小值为20页,最大值一般为255页。当到达pages_min时,分配器将采用同步方式进行kswapd的工作;当空闲页的数目达到pages_low时,kswapd被buddy分配器唤醒,开始释放页;当达到pages_high时,kswapd将被唤醒,此时kswapd不会考虑如何平衡该zone,直到有pages_high空闲页为止。一般情况下,pages_high缺省值是pages_min的3倍。
  
  Linux存储管理的这种层次式结构可以将ACPI的SRAT和SLIT信息与Node、Zone实现有效的映射,从而克服了传统Linux中平坦式结构无法反映NUMA架构的缺点。当一个任务请求分配内存时,Linux采用局部结点分配策略,首先在自己的结点内寻找空闲页;如果没有,则到相邻的结点中寻找空闲页;如果还没有,则到远程结点中寻找空闲页,从而在操作系统级优化了访存性能。
 楼主| 发表于 2011-2-5 16:33:25 | 显示全部楼层
NUMA架构在中大型系统上一直非常盛行,也是高性能的解决方案,在系统延迟方面表现都很优秀。Windows一向都没有在NUMA架构上有多少表现机会,AMD的多路系统大多也会用在UNIX/Linux上。Intel如期进入了NUMA架构的怀抱,英特尔最新的服务器处理器至强5500是一项重大的结构变革。与上一代至强处理器相比,至强5500采用了非一致性存储结构(NUMA),它在一块芯片上增加了向内存控制器的并行化访问路径增加非统一内存访问。可以看这篇文章三款Nehalem至强5500塔式服务器横评对决。Windows Server 2003 在线程调度程序和内存管理器中引入了 NUMA 优化,而 Windows Server 2008 在 I/O 管理器中添加了 NUMA 优化同时扩展了内存管理器的 NUMA 优化。NUMA 系统通常是多处理器系统,其中的内存延迟随访问它的处理器不同而有所不同。内存被分成多个节点,CPU 和节点之间的延迟可能各不相同,并且每个 CPU 都被视为它可最快访问的那个节点的一部分。Windows 7 和 Windows Server 2008 R2 一个重要更新是增强了对多核的支持。 现已可以支持超过64个逻辑处理器(也就是所谓的“核”),并且引入了NUMA 技术, 大幅度提高多核运算的性能。可以说Windows 7/Server 2008 R2已经进入高端的企业级市场。

传统的多核运算是使用SMP(Symmetric Multi-Processor )模式:将多个处理器与一个集中的存储器和I/O总线相连。所有处理器只能访问同一个物理存储器,因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器和I/O接口达到饱和的时候,增加处理器并不能获得更高的性能。

NUMA模式是一种分布式存储器访问方式,处理器可以同时访问不同的存储器地址,大幅度提高并行性。 NUMA模式下,处理器被划分成多个"节点"(node), 每个节点被分配有的本地存储器空间。 所有节点中的处理器都可以访问全部的系统物理存储器,但是访问本节点内的存储器所需要的时间,比访问某些远程节点内的存储器所花的时间要少得多。

NUMA 系统(尤其是具有超过八个 CPU 的系统)通常比一致内存访问系统更加经济且性能更高。一致内存访问系统必须平等地为所有 CPU 提供内存,而 NUMA 系统则能够为直接连接到 CPU 的内存提供高速互连,同时为与 CPU 相隔较远的内存提供较为便宜但更高延迟的连接。

为能在 NUMA 系统中有效扩展,操作系统或应用程序必须了解节点拓扑结构,以便使计算能够在包含计算数据和代码的内存附近执行。例如,Windows 调度程序为每个线程分配一个所谓的理想处理器,该处理器是调度程序试图始终在其上执行该线程的 CPU。这样做可以使线程置于 CPU 缓存中的数据能够尽可能地在每次该线程运行时可用。

NUMA 的主要优点是伸缩性。NUMA 体系结构在设计上已超越了 SMP 体系结构在伸缩性上的限制。通过 SMP,所有的内存访问都传递到相同的共享内存总线。这种方式非常适用于 CPU 数量相对较少的情况,但不适用于具有几十个甚至几百个 CPU 的情况,因为这些 CPU 会相互竞争对共享内存总线的访问。NUMA 通过限制任何一条内存总线上的 CPU 数量并依靠高速互连来连接各个节点,从而缓解了这些瓶颈状况。
 楼主| 发表于 2011-2-5 16:35:32 | 显示全部楼层
让AMD CPU服务器高速运行Solaris

AMD 皓龙处理器为Sun公司的Solaris操作系统构建强大动力,基于AMD处理器的服务器与Solaris操作系统搭配,帮助企业用户快速、经济地建立安全、可靠、高性能的信息系统,为企业提供领先业界的效能。您可以不费太大的力气就能实现这一目标:让您的数据中心提供卓越的性能,为您的业务提供服务,促进您的事业发展,提高您的自信。了解这一点后给人带来的兴奋感丝毫不亚于获得更多的报酬,而当您将基于AMD皓龙处理器的服务器与Sun公司的Solaris操作系统结合在一起时,您就能够领略这一奥妙。
  想了解详细情况吗?没问题。AMD皓龙处理器与Solaris操作系统能够完美结合的原因有许多,它们的结合就像花生酱配巧克力、汉堡肉饼配面包或鱼肉配薯片那样自然而又密不可分,下面就为您一一诠释。
  1. Solaris在AMD处理器上能够发挥出超高的性能
  Sun的工程师不断对Solaries进行成套的测试,衡量并优化其性能,这些测试包括行业标准的基准测试。在基于AMD皓龙处理器的系统上,Solaris 10在运行数量众多的行业标准基准测试及工作负载时,创造了50多项世界纪录。
  此外,通过 Solaris 10 OS,Sun 可以直面未来的网络挑战,从根本上提高您的网络性能,而不要求更改现有的应用程序。Solaris10支持当前的IPv6规范,并能通过增强TCP/IP和UDP/IP堆栈提高应用性能。该操作系统还支持10Gb以太网、无线联网以及iSCSI等最新技术,支持1GB页面。
  2. 基于AMD处理器的服务器在Solaris的虚拟化技术中得到优化
  虚拟化带来的优势包括:服务器整合、软件部署简化和应用的便利等。OpenSolaris项目包括对基于开源Xen虚拟化技术的支持,这是Sun xVM Server管理程序的核心。Sun xVM Server是企业级的开源管理程序,能够安全可靠地将多个环境和服务虚拟化到运行Solaris或Microsoft Windows的单一物理环境中。
  此外,AMD和Sun公司与Xen开源社区开展合作,以帮助Xen hypervisor充分利用AMD虚拟化(AMD-V)技术,其中包括快速虚拟化索引等特性。该技术基于运行Solaris操作系统的AMD皓龙处理器。此外,AMD的工程师对Open Solaris社区的贡献颇丰,他们对部署在Sun系统上的虚拟机管理(解决方案)做出了改进。
  3. DTrace简化了实际应用性能的诊断和调优
  众所周知,在软件开发行业中,Solaris创新技术——Solaris Dynamic Tracing(Solaris动态追踪,更多地被称为DTrace)是Solaris最受欢迎的特性,自2003年问世以来,赢得了开发人员和管理人员的广泛重视。DTrace现在,系统管理员、集成人员和开发人员可以使用动态检测与追踪功能真实观看系统正在执行的任务DTrace 提供了一个真正系统级的应用程序和内核活动视图,甚至包括那些在 JavaTM虚拟机中运行的活动。这种基准数据采集可将故障诊断的时间从几天和几周缩短到几分钟和几小时,从而加快了数据驱动的修复。
  DTrace的出色之处在于无需修改就能在生产系统上使用。如果一个应用运行速度缓慢,那么打开DTrace,就能立即收集到各种诊断信息,并且不会对系统的运行速度有任何影响。
  Sun的开发人员Bryan Cantrill、Mike Shapiro和Adam Leventhal发明了DTrace,并将其发布到开源社区。现在,在其他操作系统中也可以找到DTrace,但是DTrace最成熟的实施版本还是在Solaris中,而且是该操作系统的秘密武器之一。
  4. 内存分配优化可优化AMD处理器的性能
  为NUMA(非一致性存储架构)大声喝彩吧!多年来,AMD的处理器就一直采用NUMA技术,因此当使用拥有多个AMD皓龙处理器的系统时,您就会受益于这一成熟技术。当您在安装了2块或更多AMD皓龙处理器的服务器上运行Solaris时,该操作系统就会执行内存分配优化(Memory Placement Optimization)技术,以获得卓越的多处理器性能。这确保了每个核心在任何情况下都能访问距离自己最近的内存,从而提高性能。
  在AMD采用HyperTransport(超传输总线)技术的直连架构中,集成的内存控制器和I/O链路能够以全速与CPU通信。Solaris在设计上支持这些架构特性,且有助于优化运行特殊线程的处理器的内存分配。这有助于降低内存读写操作中的拥堵、延迟并减少等待状态。
  Solaris系统拥有的AMD皓龙处理器越多,系统性能的扩展性就越出色,而对可用带宽的利用也越高效。
[next]
5. ZFS能够发现和更正无记载数据损坏(silent data corruption)
  ZFS是Sun先进的文件系统,不仅能够自我管理,而且还能发现并更正系统组件故障所导致的错误,包括幻象数据(phantom data)和读数据时的误导等。所有的数据均受到256位校验和的保护,而校验和与数据是分开存放的。
  ZFS提供了出色的可扩展性、卓越的准确性,甚至让您能够从SPARC服务器上取出硬盘,换到基于AMD处理器的服务器上,反之亦然。
  Sun公司在创新、高效、开放和生态友好的服务器和存储系统上投资巨大,这些服务器和存储系统利用了AMD皓龙处理器和SAS以及SATA硬盘驱动器等行业标准组件。Sun的硬件差异化优势存在于设计创新中。比如,Sun Fire X4500在4U的机架空间中,集成了功能强大的基于4路AMD皓龙处理器的服务器和48TB的SATA硬盘。这有助于在更小的空间里消耗更少的电力完成更多的工作。
  Solaris和AMD处理器提供出色的服务器电源管理
  6. Solaris和AMD处理器提供出色的服务器电源管理
  随着服务器数量的激增,能耗和冷却成本大副度上升,因此节约每一瓦电力都非常重要。这就是为什么AMD处理器和平台芯片都在小心翼翼地使用电力,降低从全速运行到闲置模式的所有供电状态的功耗,以帮助您将电费支了保持在可控状态下。
  带OPM的AMD PowerNow!?技术不仅提供增强的电源管理功能,而且降低了对数据中心冷却和通风系统的压力,有助于在当前要求最严格的企业服务器环境中实现平台投资保护。这已经被从Solaris 10 5/08 和 OpenSolaris 2008.05开始的Solaris和OpenSolaris版本所采用。
  独立核心动态调用技术(Independent Dynamic Core Technology)根据应用的具体需求,使每个核心可以根据其应用的特定性能需求来调整时钟频率。这提供了卓越的电源管理特性,有助于降低数据中心的能耗,进而有助于降低总拥有成本。
  双动态电源管理(Dual Dynamic Power Management)让每个处理器都能最大程度地利用增强型AMD PowerNow!技术的优势,同时又不会影响性能。双动态电源管理能够为CPU核心和内存控制器分别独立供电,支持核心和内存控制器根据应用需要以不同的电压工作,从而具有领先的低功耗特性。
  7. Solaris为未来的应用做好准备
  Solaris和Sun Studio 12为部署基于AMD处理器架构上的高性能应用的开发,提供了用于多线程应用开发和调试的先进图形工具。再加上Sun的Linux开发人员工具,得益于Solaris 10的先进特性,用户能够很轻松地将Linux上的应用迁移到Solaris中。并。
  Sun Studio 12中的高级图形调试器,能够快速识别多线程多处理器应用的故障问题。此外,您还能够发现性能瓶颈,并使用X-Designer GUI构建器快速开发采用C、C++和Java编程语言的图形用户接口(GUI)。同时,在NetBeans开放工具平台上构建的直观IDE,满足C和 C++编程的需求。
  通过Sun与AMD的合作,编译器团队做了大量工作,针对AMD64架构进行了特殊优化,可以马上利用AMD64架构的优势。既可以原封不动地运行老的二进制代码,也可以重新编译以利用处理器最新的特性。
  您可以编写利用这些新特性的应用,让您现有的应用利用Solaris 10的新功能、可管理性、安全性和其他改进之处,并在AMD处理器上运行得更快。
  如果您现在投资在Solaris上构建应用,当未来服务器上的CPU和核心数量增长时,您就能够扩展自己的解决方案。
  8. Solaris支持的预测性自我恢复管理有助于增加服务器的运行时间
  预测自我修复是 Solaris 10 中的一个创新功能,可以动态诊断、隔离许多硬件和应用程序故障,并实现恢复。因此,如果发生软件故障、重大硬件组件故障、甚至软件误配置问题,关键业务应用程序和基本系统服务可以继续不间断运行。 [next]
在基于AMD皓龙处理器的服务器上,Solaris的预测性自我恢复管理,能够自动遥测处理器和监测系统内存、CPU和I/O子系统的错误更正代码,寻找可能出现故障的信号。如果系统发现CPU中有可能即将出现故障的信号,Solaris能够将运行在该CPU的应用和进程移到其他处理器和CPU 上,并使有问题的CPU脱机,而不必关闭其他处理器。与之类似,该系统还能检查DIMM内存芯片的问题,并同样使问题芯片脱机。
  AMD和Sun的工程师之间密切的合作,使这预测性自我恢复管理成为可能。易于理解的诊断消息链接到 Sun 知识库中的文章,可以清楚地指导管理员完成需要人工干预的纠错任务,最大程度地增加系统运行时间。
  Solaris有一套对不同故障遥测进入监控、诊断和响应的规则。针对智能机器检查到的例外情况的处理器能够收集错误数据,确定发生的错误类型,将错误记入日志,并在需要时采取适当的行动。内存控制器核心驱动程序模块,能够分析节点内存配置方面的相关资料。增强型平台拓扑库描述平台硬件的相互关系并提供了硬件组件特性库,以帮助管理和处理系统的错误。
  9. 通过OpenSolaris获得先进特性
  OpenSolaris 为开发人员和用户评测 Solaris 源代码提供了一个低风险的选择,并为他们参与开发 Solaris OS 提供了一个难得的良机但在最新的Solaris操作系统商业版本中可能还没有提供。OpenSolaris不只是一个开放源码项目,而且也是一个社区以及托管协作、Solaris 开放源码、下载、开发工具、邮寄列表、用户组和活动的网站。
  多年来,Sun的Solaris服务器工程师与AMD的微处理器专家一直密切合作。这就是OpenSolaris成为首批利用新款AMD皓龙处理器的操作系统,并在这些处理器上优化性能的原因。该服务器采用的是最新一代AMD四核皓龙处理器,它的代号为“Shanghai”。
  AMD“上海”处理器使用与上一代“巴塞罗那”四核皓龙处理器相同的Socket 1207插槽架构,用户可以平滑升级,保护客户的IT投资。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-11-25 16:29 , Processed in 0.139360 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表