DB2 Viper 入门,第 3 部分: DB2 Viper 中的自调优内存特性

有了 DB2® Viper (Viper 是 DB2 V9 的开发代号)中新的自调优内存管理特性,调优数据库内存和缓冲区以提高性能并不费力。该特性可以自动配置数据库内存设置,并在运行时自动调整这些设置,从而优化性能并提高管理员的效率。看看该特性的工作原理,探索其优点,并看看该特性在基准设置中的结果。要了解关于 DB2 Viper 的新特性的更多信息,请参阅 本系列中的其他文章

Rav Ahuja (rsahuja@ca.ibm.com), DB2 程序经理, IBM 

Rav Ahuja 是 IBM 多伦多实验室的一名世界级 DB2 程序经理。从 DB2 出第一版开始,他就一直从事 DB2 for Linux, UNIX, and Windows 方面的工作,在 DB2 开发、技术支持、市场营销和产品战略等岗位上担任各种角色。他与世界各地的客户及合作伙伴打交道,帮助他们构建 DB2 和基于服务的解决方案,使他们从中受益。Rav 经常发表 DB2 方面的论文,撰写 DB2 方面的文章和书籍。他拥有麦吉尔大学计算机工程学士学位和西安大略大学的 MBA 学位。



2006 年 7 月 03 日

简介

数据库的工作负载很少一直是静态的。由于多种原因,包括用户的增加、查询模式的变化、维护任务的运行、其他应用程序消耗的资源的变化等等,工作负载及其所在的环境总是不断地变化。因此,即使是技术最高超的管理员在某个时候调优过的系统,在另一个时候也未必是最优的。变化可能在数秒内(而不是数天或数星期内)发生,因此留给管理员作出响应的时间就很短。数据库内存设置尤其容易受这些变化的影响,因而会严重影响响应时间。

下面介绍 DB2 Viper 中新的自调优内存管理特性,该特性可以自动调优数据库内存设置,并能够在运行时动态调整它们,从而优化性能并提高管理员的效率。

工作原理

DB2 Viper 中的自调优内存管理特性能够在启动时自动为一些内存配置参数设置值,从而简化内存配置任务。自调优内存管理器使用智能控制和反馈机制来跟踪工作负载特征、内存消耗以及对数据库中各种共享资源的需求的变化,并根据需要动态调整它们对内存的使用。例如,如果排序操作需要更多的内存,而一些缓冲池又有多余的内存,那么内存调优器会释放多余的缓冲池内存,并将它分配给排序堆。

图 1. 数据库内存
数据库内存

在 Windows® 和 AIX® 平台上,自调优内存特性还可以确定整个数据库的内存需求,并动态调整数据库内存使用总量。也就是说,在这些平台上,除了在数据库资源之间动态调整内存使用量之外,DB2 还可以根据工作负载的需求占用更多的物理内存,也可以在数据库内存需求较低的时候将内存释放给操作系统,供其他任务和应用程序使用。

启用自调优内存特性

自调优内存特性对数据库共享内存资源起作用。这些资源包括:

  • 缓冲池 (由 ALTER BUFFERPOOLCREATE BUFFERPOOL 语句控制)
  • 包缓存 (由 pckcachesz 配置参数控制)
  • 锁定内存 (由 locklistmaxlocks 配置参数控制)
  • 排序内存 (由 sheapthres_shrsortheap 配置参数控制)
  • 总体数据库共享内存 (由 database_memory 配置参数控制)

自调优内存特性可以通过 self_tuning_mem 数据库配置参数来启用。在 DB2 Viper 中,当创建一个新的数据库时,会自动启用自调优内存特性(对于非分区数据库而言)。也就是说,self_tuning_mem 被设置为 ON,与前面列出的各资源对应的数据库参数被设为 AUTOMATIC。对于从早期版本的 DB2 迁移过来的已有数据库,需要手动启用自调优内存特性。不一定要让所有数据库内存资源都被自动管理,而是可以选择只将需要的一些内存资源(参数)设置为 AUTOMATIC。

优点

传统上,配置数据库内存参数以优化运行性能是一项复杂而耗时的任务。DB2 Viper 可以自动为数据库设置内存参数,从而简化数据服务器的配置任务。这样就提高了管理员的效率,使管理员可以将精力集中在其他重要的任务上。

除了简化内存配置外,这种新的、自适应的自调优内存特性可以提供较好的配置,这种配置是动态的,可以根据工作负载的重大变化及时作出响应,从而可以提高性能。

当多个数据库运行在同一个系统上时,该特性允许某些数据库在高峰时期占用更多的内存,并在其他数据库和工作负载需要更多内存的时候释放内存,因此在这种情况下该特性也具有优势。

正在起作用的自调优内存特性

下面的 图 2 展示了在基准配置中正在起作用的 DB2 自调优内存特性。DB2 自动增加数据库共享内存(左侧的图)以满足工作负载的需求,最终导致查询吞吐量增加(右侧的图)。

图 2. 自动调优对系统性能的影响
自动调优对系统性能的影响

结束语

DB2 Viper 中的自调优内存特性是一项革命性的特性,它可以明显节省时间,简化内存调优,并可以动态地自动优化性能。请下载 DB2 Viper,试试这个特性,体验一下它的优点。

参考资料

学习

获得产品和技术

  • 下载 DB2 9 测试版,试用本文中描述的特性。
  • 使用可直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个开发项目。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=144747
ArticleTitle=DB2 Viper 入门,第 3 部分: DB2 Viper 中的自调优内存特性
publish-date=07032006