首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 服务器>文章内容
高端Linux操作系统服务器技术之注解
来源:http://www.unix5.com 作者:riechelr_hl 发布时间:2007-07-12  

3.NUMA技术

现今的64位UNIX并行计算服务器可分为两类:分布式共享存储结构(DSM)和集群系统。非均匀存储访问(NUMA)是一种并行模型,属于DSM这一类。NUMA的物理内存分布在不同节点上,在一个处理器存取远程节点的数据,比存取同一点的局部数据“路径”远一些,时间长一些,所以是非均匀存储访问。

对称多处理也是一种共享存储器的多处理机结构。它的单一寻址空间、简单的编程方式、操作方便是其容易普及的主要原因。大规模并行处理(MPP)属于集群系统这一类体系结构,它的优势是可扩展性好,但需要并行编程和并行编译,使用不便。NUMA系统把SMP与集群的优势结合在一起,它既有SMP的可编程性,又具有集群的可扩展性。实际上,这一“优势的结合”实为一种折衷,其中关键是寻求结合的途径并确定结合点。

NUMA3系统架构的由来

NUMA(非均匀存储器存取结构-Non Uniform Memory Access Architecture)是在八十年代后期作为斯坦福大学的一个研究项目诞生的。1995年,SGI与斯坦福大学DASH项目组一起设计出了第一代NUMA系统;1996年,SGI推出了第二代NUMA系统,该系统的处理器数目可以从32个一直扩展到512个,并且系统带宽可随处理器数目增加而线性扩展;为了进一步扩展NUMA架构的功能和提高灵活性,SGI在2000年秋季推出了第三代NUMA系统,简称NUMA3系统。新系统可以使系统的计算能力、内存容量、外存容量、图形性能及联网能力独立地扩展,NUMA3系统具有多功能性、模块化、灵活性等三大特点。用户可以根据需要量体裁衣地配置系统,因而投资可以得到充分保护。

第三代NUMA系统采用不同的功能模块(Brick)构成,这些模块比第二代NUMA机的模块小,功能更专一、更具可扩展性,而且尺寸标准化,这就进一步增加了系统的灵活性。

在第三代NUMA服务器中,采用性能更好的交叉开关Bedrock,所有的处理器和存储器通过Bedrock连接在一起。这些处理器、存储器和交叉开关的结合组成了称为NUMAlink的互联结构。另外,在第三代NUMA服务器中采用了更先进的路由芯片,通过使用特殊的光缆提供具有高带宽和极低延迟的互联网络,路由芯片所有的Bedrock交叉开关连接起来形成一个单一的、连续的达1TB的存储空间。处理器和本地以及远程存储器之间的通信宽带(双向)由原来的1.6GBps提高到3.2GBps。另外,电源采用N+1的冗余方式,因此可靠性也进一步提高。

在NUMA体系结构中,每个处理器与自已的本地存储器和高速缓存相连,多个处理器通过处理器、存储器互联网络相连。处理器还通过处理器、I/O网络访问共享的I/O和外围设备。至于处理器之间的通信则通过可选的处理器之间的通信网络来实现。NMUA技术在科学与工程计算领域具有不可替代的地位,在联机事务处理(OLTP)、决策支持服务(DSS)和Intranet以及Internet中的地位也越来越重要。 目前,NUMA并行机的处理器数目可达到512个,且带宽可随处理器数目基本上呈线性扩展。这样大的处理器数,使单一系统映像的NUMA机足以覆盖绝大多数的应用。首先,由于它具有与SMP相同的编程模式,因此在科学与工程计算领域具有不可替代的地位;其次,由于它具有共享内存和良好的可扩展性优势,所以能很好适应企业数据中心的多种应用。

今天,NUMA系统能够运行世界上一些最大的UNIX数据库应用,而且正被广泛接受为电子商务的主流技术,包括处理功能、I/O的大规模可扩展性、高可用性、工作负荷和资源管理的广泛灵活性,而且无需改变SMP编程模型。

存储一致性与ccNUMA

在NUMA并行机中,虽然存储器在物理上被分配到各节点中,但可被系统内所有处理器访问或共享。存储一致性问题是由于多个处理器共享同一个存储单元而引起的。SGI采用高速缓存一致性(Cache Coherent)技术来解决存储一致性问题,这就是“ccNUMA”并行机名称的由来。

在ccNUMA系统中,每个CPU有一个私用高速缓冲存储器。为了得到较好的性能,CPU经常在它的高速缓存中取指令及存储数据。在这种系统中,一个存储器地址的内容可以有许多独立的拷贝给各个CPU。如果每个CPU指向同一个存储器地址,则每个CPU的高速缓存把得到该地址的内容拷贝。但是当一个CPU修改该地址的内容后,必须阻止其他各个CPU使用当前已经“过时”的数据,这就是所谓高速缓存一致性问题。那么怎么样保证所有高速缓存能反映存储器的真实情况呢?

高速缓存一致性不是用软件来实现,它必须用硬件来管理。高速缓存一致性问题也不是用CPU来实现,而是用Hub芯片中的部分辅助线路来实现。为了提高系统的带宽和规模可伸缩性,在采用ccNUMA体系结构的服务器中,不采用基于总线的广播方法,而是采用基于目录的高速缓存一致性方案。任何时候,当一个节点请求访问存储器中某一Cache行时,它的集线器就启动曾经访问过该行节点的高速缓存,并把Cache行的存储器数据拷贝到这一节点的高速缓存中。当存储器中的Cache行未被独占时,其他各节点就可按同样方式通过互联网络从高速缓存中读取该行数据。当一个CPU要修改一个Cache行时,它必须取得独占权。为此,集线器从目标行的状态位中进行检索,并发送一个无效信息给对该行数据作过拷贝的每个节点,在目录存储器中设置了对内容作修改的节点的编号。当一个CPU要读一个Cache行,且该行被独占时,集线器就要求该节点对这个Cache行作拷贝。其他节点则通过互联网络从拥有独占权节点的高速缓存中拷贝该Cache行的最新信息。如果两个节点要求同时访问某一Cache行时,则有协议来保证某个节点去访问该Cache行。

ccNUMA结构的服务器在性能、灵活性、可用性方面都能适合用户多种应用的要求,它已成为当今互联网经济时代非常卓越的Internet/Web服务器,特别是在宽带因特网中作为多媒体应用的核心服务器。与集群不同的是,集群采用一种松散的结合方式,在几台机器之间相互通信,内部交换时间长、消耗大,而且把几台机器作为一个系统管理,势必增加了管理上的难度。而ccNUMA计算机则不同,无论它内部有多少个处理器,对用户来说,它也仅仅是简单的一台计算机。

共4页: 上一页 [1] 2 [3] [4] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·Linux系统下Apache服务器设置与
·在Linux x86上安装Oracle数据库1
·Linux操作系统下IPTables配置方
·Linux系统下SVN服务器的搭建过程
·Linux架设代理服务器(1)
·Linux系统下的Oracle数据库编程
·Linux 服务器集群系统
·Linux下免费数据库PostgreSQL开
·在Ubuntu Linux 上架设Web服务器
· 在 Linux 上构建 Web spider
·Debian Linux操作系统下启动远程
·用LVS在Linux上搭建负载均衡的集
  相关文章
·浅析Apache服务器中SSI和CGI设定
·Linux服务器策--简说Web站点的内
·用LVS在Linux上搭建负载均衡的集
·Debian Linux操作系统下启动远程
·Linux系统下Mini SQL数据库开发
·Linux系统下的Oracle数据库编程
·架设基于Linux(2.6.14内核)服务
·教你用SRP服务构建Linux下FTP服
·剖析Linux系统下基于NUMA构建的
·Oracle开发应用
·在UnixWare7.1.1上安装Oracle8i
·在slackware 10下安装Oracle 10

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!