在服务器的架构构方面一般可分为小型独立服务器模式、SMP(对称多处理)模式、MPP(大规模并行处理)模式和NUMA模式四类。
SMP模式将多个处理器与一个集中的存储器相连,如图2所示。这是目前最为流行的一种服务器架构,因为它在低处理器系统中,通过简单地增加处理器数量线性地提高服务器性能。不仅许多服务器硬件,如CPU(包括各品牌服务器CPU)、芯片组等一般都支持SMP架构,就连所用操作系统也都基本上支持SMP,如Windows 2000 Server、Windows Server 2003和UNIX、LINUX系统。
在SMP模式下,所有处理器都可以访问同一个系统物理存储器,这就意味着SMP系统只运行操作系统的一个拷贝。因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享惟一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器接口达到饱和的时候,增加处理器并不能获得更高的性能。所以一般来说采用SMP架构的服务器一般最多只能是8路处理器系统。
MPP模式则是一种分布式存储器模式,能够将更多的处理器纳入一个系统的存储器,如图3所示。一个分布式存储器模式具有多个节点,每个节点都有自己的存储 器,可以配置为SMP模式,也可以配置为非SMP模式。单个的节点相互连接起来就形成了一个总系统。MPP体系结构对硬件开发商颇具吸引力,因为它们出现 的问题比较容易解决,开发成本比较低。由于没有硬件支持共享内存或高速缓存一致性的问题,所以比较容易实现大量处理器的连接。可见,单一SMP模式与 MPP模式的关键区别在于,在SMP模式中,数据一致性是由硬件专门管理的,这样做比较容易实现,但成本较高;在MPP模式中,节点之间的一致性是由软件来管理,因此,它的速度相对较慢,但成本却低得多。
NUMA模式也采用了MPP架构的分布式存储器模式,不同的是所有节点中的处理器都可以访问全部的系统物理存储器(参见图1)。然而,每个处理器访问本节 点内的存储器所需要的时间,可能比访问某些远程节点内的存储器所花的时间要少得多。换句话说,也就是访问存储器的时间是不一致的,这也就是这种模式之所以 被称为“NUMA”的原因。简而言之,NUMA既保持了SMP模式单一操作系统拷贝、简便的应用程序编程模式以及易于管理的特点,又继承了MPP模式的可 扩充性,可以有效地扩充系统的规模,是SMP架构的模块化。这也正是NUMA的优势所在。总的来说,NUMA体系结构的优势主要体现在以下几个方面:
首先,NUMA的突破性技术彻底摆脱了传统的超大总线对多处理结构的束缚。它大大增强单一操作系统可管理的处理器、内存和I/O插槽。
其次,NUMA设计的重点是让处理器快速地访问在同一单元的内存,NUMA处理器访问同一单元上的内存的速度比一般SMP模式超出一倍。并且,NUMA操 作系统充分利用处理器缓存,能达到极高的寻址命中率。SMP模式虽然比NUMA简单,但是,所有的处理器访问内存的时间是一致且缓慢的。同时,基于SMP 的总线存着在一个物理极限,令系统的扩充性逐步降低。此外,在基于SMP体系结构的大型系统中,平衡地增加处理器、I/O和内存变得更加困难。
最后,NUMA系统提供内存互联的硬件系统,这种技术可以开发新型动态的分区系统。系统分区的好处在于允许系统管理员在同一计算机内运行多个操作系统(如 Unix和Windows NT),并根据用户工作负荷的要求,在不同的操作系统环境间,简单地管理和使用CPU和内存资源,从而实现最佳的性能和最高的资源利用率。