WEB开发网
开发学院数据库DB2 POWER5+和AIX 5L多页面支持下的IBM DB2 Enterpris... 阅读

POWER5+和AIX 5L多页面支持下的IBM DB2 Enterprise 9性能

 2009-12-12 14:58:08 来源:WEB开发网   
核心提示:了解IBM® DB2® 9 for Linux®、UNIX®和Windows® (DB2)如何利用多页面大小(multiple page size),随着POWER5+™处理器架构的引入,POWER5+和AIX 5L多页面支持下的IBM DB2 Enterprise

了解IBM® DB2® 9 for Linux®、UNIX®和Windows® (DB2)如何利用多页面大小(multiple page size)。随着POWER5+™处理器架构的引入,IBM AIX 5L™ 操作系统增加了对新的64 KB 页面的支持,这种页面与当前默认的 4 KB 页面具有类似的性质。此外,AIX 5L Version 5.3 TL04 还为这种硬件架构引入了一种新的16 GB 巨型页面特性。DB2 9 自动利用64 KB 页面为该平台上的数据库应用程序提供高性能。此外,DB2 还支持对16 GB 巨型页面的使用。

简介

由于各种各样的原因,大多数现代操作系统都是在虚拟地址空间中运行程序的。虚拟地址有很多优点,包括灵活性、独立性、可移植性以及比物理内存更多的寻址空间,此外在一定程度上还允许底层硬件配置的独立性。

然而,在虚拟地址空间中运行程序也会带来相应的成本。程序(包括 DB2)引用的内存地址是虚拟地址。每次为程序指令或数据处理内存位置时,都需要将虚拟地址转换成物理(或实际)内存地址。这种转换是由一个页表来维护的,这个过程增加了程序的执行时间。页表的大小与页面大小成反比,这意味着页面大小越小,页表就越大,开销也就越大。

多年来,4 KB 一直都是大多数操作系统,包括 AIX 5L 操作环境的标准页面大小。最近,随着数据量和处理器可寻址内存的增加,4 KB 的页面大小的效率变得有些低下了。为了提高处理大量数据的应用程序的性能,基于 IBM POWER5+ 处理器且运行 AIX 5L V5.3 TL04(或更高版本)的系统引入了多页面大小支持。从 AIX 5L V5.1 开始,POWER™ 处理器和 AIX 5L 操作系统支持两种页面大小(4 KB 和 16 MB)。除了这两种页面大小外,最新可用的页面大小有 64 KB 和 16 GB。64 KB 的页面与 4 KB 在行为上是相同的。(也就是说,这些页面内存不是固定的,可以对它们进行分页。)

为了利用最新可用的页面大小,DB2 9 自动检测系统中可用的页面大小。如果 64KB 页面大小可用,那么 DB2 会将一些进程和所有共享内存区域的默认大小设置为 64 KB。从 IBM DB2 Universal Database ™ (UDB) V8.2.5 开始,DB2 还增加了对 16 GB 页面的支持。

背景知识

让我们看看进程运行时环境,了解清楚为什么大型页面对诸如 DB2 之类的企业应用程序有如此高的价值。

进程运行时环境

在运行任何程序之前,操作系统装载器必须将它装载到实际内存中。在 AIX 5L 环境中,用于运行进程的内存被分成各种不同的内存区域。用于进程的私有区域有:text、stack 和 data/heap,每个区域专用于某个特定的用途:

text 区域存储进程的指令。

data/heap 区域包含动态分配的内存和可全局访问的程序数据(例如 DB2 代理私有内存)。

stack 区域用于子程序返回地址,也用于存储自动数据。

另外还有一个非私有区域,称为共享内存,这是 DB2 和其他多进程应用程序广泛采用的进程间通信机制。DB2 使用共享的内存区域来有效地在相互协作的 DB2 进程(如 DB2 代理)之间处理和共享数据(主要用于缓冲池)。DB2 还将共享内存用于各种其他的堆。

如前所述,进程所引用的内存地址是虚拟地址,需要将其转换成物理地址。对于每个正在运行的进程,虚拟地址与物理地址之间的映射是在一个称作页表的数据结构中维护的。页表的数量与虚拟地址空间的大小成比例。因此,页表的大小就很重要。为了加快地址转换,架构中有一个 processor-on-a-chip (PoC) 缓存和相关的转换后备缓冲器 (TLB) 逻辑。TLB 是一个较小的缓存区域,用于存储最近的地址转换,以便再次使用。

大型页面的优点

除了处理器时钟速度外,另一个重要的处理器性能度量是每条指令的时钟周期(CPI)。实际上,CPI 是对运行一条指令需要多少时间的度量。通常意义下的 CPI 是指平均或规格化的 CPI。CPI 越低,则执行越快,性能也就越好。

TLB 缓存条目重用(缓存命中)意味着更快的地址转换,还意味着对物理内存的更快的访问。如果 TLB 没有命中,那么就需要访问存储在主存中的页表,而这样做需要消耗相当多的处理器周期。增加进程的地址空间(也就是说,从 32 位地址空间增大到 64 位地址空间)这种做法已经变得越来越普遍了,但是这样会增加页表的大小,从而降低地址转换的速度。

为解决这个问题,有两种选择。一种选择是增加 TLB 大小。然而,由于芯片空间的限制,TLB 的大小不能成比例地增加。另一种选择是通过减少页表中的条目来减少页表的大小。前面已经指出,页表的大小与页面大小是成反比的,这意味着增加页面大小可以使页表变得更小,而且,每个 TLB 条目可以满足更多的地址转换。(也就是说,页面越宽,每个页面存储的信息也就越多。)

POWER5+ 处理器架构(运行 AIX 5L 操作系统)通过引入多页面大小来解决页表问题。一个应用程序可以选择与其工作负载的大小和特性相符的页面大小。在本文的后面您将看到,这种思想可以产生相当大的性能优势。

AIX 5L 多页面大小支持

这一节对 AIX 5L 的多页面大小支持作一个简要的概述。在简介部分已提到,POWER5+ 处理器和 AIX 5L V5.3(具有 5300-04 建议的技术级别)引入了对两种新的虚拟内存页面大小的支持:64 KB 和 16 GB。16 GB 的页面仅用于性能非常高的环境,而 64 KB 的页面则是为通用目的而设计的。实际上,对于大多数工作负载,使用 64 KB 的页面比使用 4 KB 的页面更好。我们将在本文的后面讨论对 DB2 使用 64 KB 的页面所带来的性能优点。分配 16 GB 的页面则需要 IBM Hardware Management Console (HMC) Version 5 Release 2 机器代码。

当在基于 POWER5+ 处理器的系统上运行 5300-04 技术级别的 64 位 AIX 5L 内核时,对 64 KB 页面大小的支持是自动启用的,不需要进行系统配置或调优。

注意,64 KB 页面完全可以进行分页,并且 64 KB 页帧的池的大小是动态的。AIX 5L 操作系统管理池的大小,并根据不同页面大小的需要改变 4 KB 和 64 KB 页帧的数量。然而,16 MB 页面大小需要使用 vmo 命令对 AIX 5L 进行配置。

可以使用 AIX 5L svmon 和 vmstat 命令来监视系统上 4 KB 和 64 KB 页帧的数量。例如,要显示关于每种页面大小的 DB2 进程统计信息,可以使用 -P 标志、 DB2 进程 ID (PID) 和 svmon 命令:

# svmon –P 852128
-------------------------------------------------------------------------------
   Pid Command     Inuse   Pin   Pgsp Virtual 64-bit Mthrd 16MB
 852128 db2sysc     372534  65669    0  371671   Y   N   N
  PageSize   Inuse    Pin    Pgsp  Virtual
   s  4 KB    4521     0     0    3657
   m 64 KB   302477    133     0   302478
  Vsid   Esid Type Description       PSize Inuse  Pin Pgsp Virtual
    0     0 work kernel (lgpg_vsid=0)     L 65536 65536  0 65536
          Addr Range: 0..65535
 2e845f 78000048 work default shmat/mmap      m  4096   0  0 4096
          Addr Range: 0..4095
 1987b1 78000021 work default shmat/mmap      m  4096   0  0 4096
... output snipped ...

1 2  下一页

Tags:POWER AIX 页面

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接