首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 服务器>linux服务器应用>文章内容
Linux系统下基于NUMA构建的服务讲解(图文讲解)
来源:http://www.unix5.com 作者:linuxfans 发布时间:2008-04-28  

 

图 1 SGI Altix3000 系统的两个结点

  NUMA 系统的结点通常是由一组 CPU(如,SGI Altix 3000 是 2 个Itanium2 CPU)和本地内存组成,有的结点可能还有I/O子系统。由于每个结点都有自己的本地内存,因此全系统的内存在物理上是分布的,每个结点访问本地内存和访问其它结点的远地内存的延迟是不同的,为了减少非一致性访存对系统的影响,在硬件设计时应尽量降低远地内存访存延迟(如通过 Cache 一致性设计等),而操作系统也必须能感知硬件的拓扑结构,优化系统的访存。 

  目前IA64 Linux所支持的NUMA架构服务器的物理拓扑描述是通过ACPI(Advanced Configuration and Pow
er 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.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_DMA前16MB内存;ZONE_NORMAL 16MB - 896MB;ZONE_HIGHMEM 896 MB以上。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;

共3页: 上一页 [1] 2 [3] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
· 在 Linux 上构建 Web spider
·用Samba实现文件服务器功能
·在Linux上建立DNS服务器
·在linux下设置WWW Server
·用Linux建立局域网服务器
·如何设定管理SAMBA网络邻居服务
·如何建造Open WebMail伺服器(图
·如何建造Open WebMail伺服器二(
·DNS 基本观念与实际运用(图文讲
·Linuxconf DHCP伺服器架設与管理
  相关文章
·Linuxconf DHCP伺服器架設与管理
·DNS 基本观念与实际运用(图文讲
·如何建造Open WebMail伺服器二(
·如何建造Open WebMail伺服器(图
·如何设定管理SAMBA网络邻居服务
·用Linux建立局域网服务器
·用Samba实现文件服务器功能
· 在 Linux 上构建 Web spider
·在Linux上建立DNS服务器
·在linux下设置WWW Server

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