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

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

 2009-12-12 14:58:08 来源:WEB开发网   
核心提示:DB2 多页面大小支持的启用从 DB2 9 开始,DB2 自动为选择的内存区域检测和使用 64 KB 页面大小,POWER5+和AIX 5L多页面支持下的IBM DB2 Enterprise 9性能(2),在此版本之前,DB2 默认情况下都是使用 4 KB 的页面大小,DB2 还允许自定义配置 16 MB 大型页面和

DB2 多页面大小支持的启用

从 DB2 9 开始,DB2 自动为选择的内存区域检测和使用 64 KB 页面大小。在此版本之前,DB2 默认情况下都是使用 4 KB 的页面大小,同时在支持 16 MB 页面的系统上提供了自定义配置 16 MB 页面的能力。POWER5+ 架构和 DB2 UDB V8.2.5 还引入了 16 GB 大型页面的自定义配置。

对于 DB2,系统主存的最大消耗者是它的缓冲池,这个缓冲池基本上是一个单独的、较大的共享内存区域。DB2 支持缓冲池共享内存区域使用底层系统上可用的所有页面大小(4 KB、64 KB、16 MB 和 16 GB)。DB2 9 自动检测 AIX 5L 操作系统和 POWER5 硬件是否支持 64 KB 页面,如果支持,则允许所有 DB2 共享内存区域(包括缓冲池、锁列表、日志缓冲区、实用程序堆、包缓存、监视器堆和共享排序堆)使用 64 KB 的页面大小。本文的 性能 一节将详细论述使用受支持的不同 AIX 页面大小为 DB2 事务性工作负载带来的性能提升。

除了共享内存外,DB2 还允许为代理私有内存自定义配置 16 MB 的页面。代理私有内存的常见消费者是排序堆内存,代理在查询执行期间使用这部分内存来对记录行进行排序。然而,DB2 目前不会自动为代理私有内存启用 64 KB 的页面大小,也不允许为代理私有内存自定义配置 16 GB 的页面大小。

虽然 AIX 5L 操作系统和 DB2 支持这些不同的页面大小,但是配置 16 MB 或 16 GB 页面时需要定制的硬件、AIX 5L 和 DB2 配置。要让 DB2 选择预先配置的 16 MB 或 16 GB 页面,可以使用 DB2_LARGE_PAGE_MEM=DB 或 DB2_LARGE_PAGE_MEM=DB:16GB 注册表变量。请参考当前的 DB2 和 AIX 5L 文档,了解关于通过配置硬件和 AIX 5L 操作系统来使之支持 16 MB 或 16 GB 页面的说明。

16 MB 和 16 GB 页面大小都要求小心地调整分配给这些不同页面大小的 AIX 内存池的内存大小。这时要特别小心,因为如果配置不当,则可能导致 4 KB 或 64 KB 页面大小的池过度分页。当分配 16 MB 和 16 GB 的页面时,它们就在内存中扎下根来,AIX 5L 操作系统不能动态地移动较大页面大小(16 MB 或 16 GB)的池与较小页面大小(4 KB 或 64 KB)的池之间的页面。然而,如果为 16 GB 或 16 MB 的池分配了足够的内存,那么工作负载就可以在性能方面受益。

随着 64 KB 页面的引入,运行在基于 POWER5+ 处理器硬件和 5300-04 技术级别上的 AIX 5L 操作系统上的 DB2 应用程序可以自动利用更大的页面大小所带来的性能优点,而不会导致任何用户或管理开销。这里完全没有必要将 64 KB 页面固定在内存中,AIX 5L 操作系统可以动态地移动 4 KB 和 64 KB 页面大小的池之间的页面。

除了所有 DB2 共享内存区域外,DB2 9 还为它的进程栈自动使用 64 KB 页面,从而进一步提高性能,同时又不带来任何资源开销。

性能

本文之前的几个小节主要讨论较大页面大小在性能方面的关键优点,以及它们在 DB2 中的使用。在这一节中,您将了解到使用内部在线事务处理(OLTP)工作负载时的性能结果(用 DB2 9 进行评测)。

我们所描述的性能结果是从两组系统上收集的:

一个是 IBM System p5? 570 Model 9117-570,使用频率为 2.2 GHz 的 16 POWER5+ 处理器和 512 GB RAM

其中创建了 8 TB 的数据库。

为 DB2 缓冲池分配了 473 GB 内存(从 512 GB 的 RAM 中分配)。

一个是 IBM System p5 520 Express Model 9131-52A,使用频率为 1.9 GHz 的两个 POWER5+ 处理器和 32 GB RAM

其中创建了一个 25 GB 的数据库。

为 DB2 缓冲池分配了 18 GB 内存(从 32 GB 的 RAM 中分配)。

图 1 展示了相对的性能提高,它们是在 4 KB 页面大小与 DB2 和 the AIX 5L 操作系统所支持的不同页面大小之间进行规格化之后得到的。这些度量是在一个 16 路 p5-570 上测得的。当使用 64 KB 页面大小时,与使用 4 KB 页面大小相比,在性能上提高了 13%。此外,当从 64 KB 变为 16 MB 的页面时,性能提高了 8%。最后,当从 16 MB 的页面变为 16 GB 的页面时,性能又提高了 3%。DB2 吞吐率性能是以每分钟的事务数量来度量的。

图 1. 4 KB 页面与其他受支持的页面大小之间的性能提升

图 2 将图 1 看到的性能提升与减少的 CPI 和相应减少的 TLB 失误率关联起来。CPI 值越高,则运行指令所需的周期就越多,这意味着程序的运行性能未达到最优。TLB 失误的开销是整个 CPI 度量中的一个重要部分。提高 TLB 命中率可以提高 CPI 度量,从而也提高程序的性能。

如图 2 所示,使用 64 KB 页面时,DB2 工作负载的 CPI 度量提高了 11%。与使用 4 KB 的页面相比,TLB 失误率减少了 13%,导致工作负载的整体性能提高 13%。当使用 16 MB 和 16 GB 页面时,TLB 命中率进一步提高,导致 CPI 成比例增长,从而取得了更高的总体吞吐率。

图 2. 4 KB 与其他受支持的页面大小之间的 CPI 与 TLB 性能比较

通过图 1 和图 2 很容易推断,使用 64 KB 的页面大小可以明显提高 DB2 应用程序的性能。然而用户需要认识到,工作负载在性能上的提高是不确定的,它取决于数据库的大小、可用的系统 RAM 以及为 DB2 缓冲池分配的内存。为了演示使用 64 kB 页面大小在性能上提高的百分比,我们在采用 32 GB RAM 的 p5-520 上为相同的工作负载执行另外一组测试。在这组测试中,在可用的 32 GB RAM 中,只有 18 GB 被分配给 DB2 缓冲池。

图 3 展示了与在 p5-570(为 DB2 缓冲池使用 473 GB 内存)上的测试相比,在 p5-520 上获得的吞吐率所增加的百分比。与使用 4 KB 的页面相比,使用 64 KB 的页面可以使性能提高 5%。

图 3. 使用 32 GB RAM 与使用 512 GB RAM 的系统上在采用 64 KB 页面时在性能方面的提高

这两组测试得到的性能结果的不同是可以预测的,因为随着数据库和分配给 DB2 缓冲池的内存的增加,TLB 缓存上的压力也随之增加。

结束语

当在支持 64 KB 页面大小且采用最新的 AIX 5L V5.3 TL04 操作系统的系统上运行时,DB2 9 会自动检测和使用 64 KB 页面大小。这种较大的页面大小可以立杆见影地提高性能。但是性能上的提高量却是变化不定的(取决于工作负载,范围在 5% 与 13% 之间)。现在,在采用较大内存的系统上,通过有效地利用 TLB 缓存限制将虚拟地址转换为物理地址时所带来的开销,可以从硬件投资中获得更高的收益。此外,DB2 还允许自定义配置 16 MB 大型页面和 16 GB 巨型页面,如果需要更高的性能,还可以利用这一点。

上一页  1 2 

Tags:POWER AIX 页面

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