店面出租网站:再会NUMA架构

来源:百度文库 编辑:中财网 时间:2024/04/28 20:14:01
以前在参加软考的时候复习计算机硬件知识,书中总会提到NUMA这个东东。由于没有实际接触过,感觉迷迷糊糊的。我的理解就是几台服务器,CPU和内存全部通过NUMA体系能够统一对外提供服务,比如IBM X3950系列服务器的堆叠技术(IBM Enterprise X-Architecture),最多可以4台服务器捆绑来做VM(假设每台服务器是4颗4核的CPU,那么总共可以提供4*4*4=64颗CPU的计算能力,相当惊人哦)

      今天在MS的博客堂又看到了NUMA的实际应用:

      …………

     

      之前很多人都认为MS的产品只能使用在中小企业,进不了企业级市场,MS的东西都是在PC server上来实现,无法和IBM的主机系统来PK。随着硬件的不断发展,PC Server的优势也渐渐体现出来了,但是很多时候用户还是希望能够有更强大的PC Server来运行他们的系统。IBM的主机可以有数千颗CPU肯定比只有几十颗CPU的PC Server快很多。但是现在的PC Server也可能做到几百颗的CPU,这样就要看看微软的产品是否支持了。

      硬件已经趋向使用多条系统总线,每条系统总线为一小组处理器提供服务。每组处理器都有自己的内存,并可能有自己的 I/O 通道。但是,每个 CPU 都可以通过一致的方式访问与其他组关联的内存。每个组称为一个“NUMA 节点”。NUMA 节点中的 CPU 数量取决于硬件供应商。访问本地内存比访问与其他 NUMA 节点关联的内存快。这就是“非一致性内存访问体系结构”名称的由来。

     在 NUMA 硬件上,有些内存区域与其他区域位于不同的物理总线上。由于 NUMA 同时使用本地内存和外部内存,因此,访问某些内存区域的时间会比访问其他内存区域的要长。“本地内存”和“外部内存”通常用于引用当前正在运行的线程。本地内存是指与当前正在运行线程的 CPU 位于同一节点上的内存。任何不属于当前正在运行的线程所在的节点的内存均为外部内存。外部内存也称为“远程内存”。访问外部内存的开销与访问本地内存的开销比率称为 NUMA 比率。如果 NUMA 比率为 1,则它是对称多处理 (SMP)。比率越高,访问其他节点内存的开销就越大。不支持 NUMA 的 Windows 应用程序(包括 SQL Server 2000 SP3 及更低版本)有时在 NUMA 硬件上的执行效果非常差。

      NUMA 的主要优点是伸缩性。NUMA 体系结构在设计上已超越了 SMP 体系结构在伸缩性上的限制。通过 SMP,所有的内存访问都传递到相同的共享内存总线。这种方式非常适用于 CPU 数量相对较少的情况,但不适用于具有几十个甚至几百个 CPU 的情况,因为这些 CPU 会相互竞争对共享内存总线的访问。NUMA 通过限制任何一条内存总线上的 CPU 数量并依靠高速互连来连接各个节点,从而缓解了这些瓶颈状况。

      这次使用的系统是Unisys ES7000,有4个NUMA节点,每个节点有4颗6核的CPU组成,总计16颗CPU,96核,内存224GB,存储超过20T。很容易看出这套系统是由多台PC Server组成的,这样中系统的扩展性和性价比是主机系统无法比拟的。