跳转到主要内容

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

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

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

  • 关闭 [x]

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

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

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

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

  • 关闭 [x]

扩展测试系统上与 DB2 for Linux, UNIX, and Windows 内存相关的配置参数

Enzo Cialini, DB2 Quality Assurance 的 STSM 首席架构师, IBM
Enzo Cialini 照片
Enzo Cialini 是 IBM 多伦多实验室 IBM Information Management Software 部门的一名资深技术研究员。他目前是 Quality Assurance Architect 主管,负责 DB2 LUW Engine(Warehouse 和 OLTP)和 Customer Operational Profiling 的管理和技术测试策略。Enzo 于 1991 年加入 IBM,并于 1992 年开始在 DB2 开发团队工作。他拥有 20 年的软件开发、测试和支持经验。Enzo 积极致力于客户管理,以及 OLTP 和 Warehouse 开发领域,并著有 The High Availability Guide for DB2 一书,在 DB2 和集成方面拥有许多专利和出版物。
Andriy Miranskyy, DB2 Quality Assurance 开发人员, IBM
Andriy Miranskyy 照片
Dr. Miranskyy IBM 多伦多实验室 IBM Information Management Software 部门的一名 Quality Assurance 开发人员。他的工作和研究兴趣是软件工程中的迁移风险领域,致力于软件质量保证、程序理解、软件需求、软件体系架构以及项目风险管理。Andriy 在 Western Ontario 大学获得应用数序博士学位。他在信息管理和制药行业有着 15 年的软件工程经验。Andriy 在软件工程领域有许多的出版物和专利。

简介: 本文将基于 IBM DB2 for Linux®, UNIX®, and Windows® 生产系统的配置,介绍如何扩展测试系统上的用户数量、IBM® DB2® 实例内存以及内存相关配置参数。本文还提供一个可以自动完成扩展的样例脚本,这有助于创建一个真实的测试系统,识别与 DDB2 环境中的变更相关的潜在健壮性和性能问题。

发布日期: 2012 年 2 月 13 日
级别: 中级 原创语言: 英文
访问情况 : 618 次浏览
评论: 


免费下载:IBM® DB2® Express-C 9.7.2 免费版 或者 DB2® 9.7 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

测试环境中生产工作负载的重放有助于 DBA 识别与 DB2 环境中的变更相关的潜在健壮性和性能问题。这些变更的示例如下:

  • DB2 引擎的迁移或升级
  • 表和索引统计的刷新
  • 新安全插件的安装
  • 应用程序服务器的调整

测试系统和生产系统通常不一样。比如,测试系统的内存可能比较小。为了在测试系统上逼真地模拟生产环境的工作负载,您需要扩大用户数量、实例内存个数以及内存相关参数的值。

下一节将定义用于形式化扩展的变量。然后,再讨论 用户数量和实例内存大小 的扩展。最后,本文将介绍 其他内存相关参数自动化样例脚本 的扩展。

词典

下列定义了 7 个变量将被用于本文后续部分以形式化扩展流程

  • Ip:生产系统中 INSTANCE_MEMORY 参数的大小
  • It:测试系统中 INSTANCE_MEMORY 参数的大小
  • Up:生产系统中用户数量
  • Ut:测试系统中用户数量
  • N:内存相关参数的总量
  • Mi,p:生产系统中第 i 个内存相关参数的大小
  • Mi,t:测试系统中第 i 个内存相关参数的大小

用户和实例内存

本小节介绍生产系统和测试系统上的用户数量和实例内存之间的关系。为了确保一致性,分配到给定用户的内存数量在生产系统和测试系统上均保持一致。

如果 It 是固定的,那么测试系统上的最大用户数量应该通过公式 Ut = It × Up ÷ Ip 计算得出结果。

考虑以下示例。假设 Ip = 100Mb,Up = 10 个用户,而 It = 70Mb。那么测试系统上的最大用户数应该等于 Ut = 70 × 10 ÷ 100 = 7 个用户。

如果您想要在测试系统上模拟一个具体的用户数量,那么您可以计算测试系统上的实例内存大小,使用公式 It = Ut × Ip ÷ Up,这对于完成这一任务是必需的。

例如,如果您想要在测试系统上模拟 5 个用户 (Ut = 5),并且 Ip = 100Mb、Up= 10 用户,那么 It = 5 × 100 ÷ 10 = 50Mb。

用户和实例内存大小确定后,就可以确定其他内存配置参数的大小了。

其他内存配置参数

可以通过下列方法之一来确定其他内存配置参数。

  • 约束方法:这使得生产和测试系统上所有 内存相关的配置参数值比例保持一致。该方法可用来模拟一个具有固定内存相关参数值或者具有统一工作负载的生产系统。
  • 轻松方法:这使得生产和测试系统上一些 内存相关的配置参数值比例保持一致。该方法可用来测试一个通过 DB2 引擎管理且带有内存相关参数的生产系统。

内存管理上的其他信息

如果将一个参数值设置为 AUTOMATIC,那么 DB2 将增加参数值,如果需要的话。

STMM 根据当前工作负载为大多数内存配置参数自动设置最优值(该值可能增长也可能减小)。

如果生产系统上的所有内存配置参数是固定的,那么约束方法是最理想的。保存内存参数值比率将生成一个逼真的测试系统。如果将其中一些参数设置为 AUTOMATIC 和/或由 Self-Tuning Memory Management (STMM) 管理,那么参数值可能随着工作负载变更而波动。这意味着固定参数值不能生成一个逼真图片。这个规则存在一个例外。如果您的工作负载是统一的,那么参数值则稳定。这意味着即使将它设置为 AUTOMATIC,该值也将不可能改变。在此用例中,即使一些参数是自动管理的,约束方法仍将生成一个很好的结果。

如果一些内存参数是自动管理的、且易变的,那么轻松方法将提供一个更为逼真的解决方案。然而,因为测试系统和生产系统上的内存实例大小是不同的,自动内存管理行为在各系统上也不相同,因此,不能总是生成完美的扩展结果。

一个综合技术,约束方法和放松方法混合,用于在生产系统上的不同工作负载下捕获参数值集合,然后在测试系统上使用每个参数集合的扩展参数值运行类似的扩展负载。

本文其余小节结构如下。首先,提供附加细节用于约束放松 方法实现。然后,自动化样例脚本 部分将介绍一个 Perl 脚本样例,自动执行这些方法的实现。

约束方法实现

为了使测试系统上的所有内存参数比率保持一致,您应该禁止 STMM 并将 AUTOMATIC 设置为固定值。在测试系统上应用同生产系统相同的内存参数比率。该进程可概括如下。

Disable STMM on the test system by executing 
   "UPDATE DB CFG USING self_tuning_mem OFF"
For i = 1 .. N
   Set Mi,t = It × Mi,p ÷ Ip
   Execute "UPDATE [DB|DBM] CFG USING i-th_config_keyword Mi,t"
		

轻松方法实现

轻松方法实现在本质上与约束方法相似。然而,您可以允许测试系统管理内存参数,然而在生产系统上这是自动管理的。您需要启动 STMM 并初始化有扩展值的内存参数。如果该值在生产系统上是自动管理的,那么让它们在测试系统上也自动管理,否则您应该进行手工管理。

该流程可以通过下列算法概括。

Enable STMM on the test system by executing
   "UPDATE DB CFG USING self_tuning_mem ON"
For i = 1 .. N
   Set Mi,t = It × Mi,p ÷ Ip
   If the i-th parameter was set to AUTOMATIC on the production machine 
   Then Execute "UPDATE [DB|DBM] CFG USING i-th_config_keyword Mi,t AUTOMATIC"
   Else Execute "UPDATE [DB|DBM] CFG USING i-th_config_keyword Mi,t"
		

自动化样例脚本

本文附带一个名为 memscaling.pm 的 Perl 样例脚本,可自动执行 约束放松 方法的算法。该脚本可计算比例因子并输出测试系统的 "update [DB|DBM] cfg" 语句到一个文本文件。

捕抓数据完毕后,就可在任何电脑上执行 memscaling.pm,提供下列选项。

  • --approach_type or -a <c|r>
    • 内存扩展方法类型:'c',约束的,或者 'r',轻松的。
  • --db_cfg or -db <file containing db config>
    • 包含数据库配置的文件的名称。
  • --dbm_cfg or -dbm <file containing dbm config>
    • 包含数据库管理配置的文件的名称。
  • --output or -o <output file>
    • 输出配置文件的名称。
  • --param or -p <file containing parameters of interest>
    • 包含有兴趣扩展的内存相关配置参数的文件的名称。
  • --test_inst_mem_sz or -s <test instance memory size>
    • 在一个 4k 页的测试系统上可用于 DB2 实例的内存型号。
  • --help or -h
    • 提供其他文档。

若要使用脚本,您需要在文本文件中存储生产系统上的数据库和数据库管理配置,例如。您可以使用下列命令。

		
$db2 GET DB CFG > db.cfg
$db2 GET DBM CFG > dbm.cfg
		

包含内存相关配置参数的文件应该有如下格式:每行一个参数(即在 "get DB | DBM cfg" 输出中用括号括起来的关键字),没有特定的顺序,如下示例所示。

		
instance_memory
db_memory
mon_heap_sz
		

结束语

本文基于 DB2 for Linux, UNIX, and Windows 生产系统的配置,介绍如何扩展测试系统上的用户数量、DB2 实例内存以及内存相关配置参数。这些信息可以帮助您模拟生产系统创建出逼真的测试环境,从而提高对测试环境中变更的分析。



下载

描述名字大小下载方法
自动化算法的 Perl 脚本样例memscaling.zip4KBHTTP

关于下载方法的信息


参考资料

学习

获得产品和技术

讨论

作者简介

Enzo Cialini 照片

Enzo Cialini 是 IBM 多伦多实验室 IBM Information Management Software 部门的一名资深技术研究员。他目前是 Quality Assurance Architect 主管,负责 DB2 LUW Engine(Warehouse 和 OLTP)和 Customer Operational Profiling 的管理和技术测试策略。Enzo 于 1991 年加入 IBM,并于 1992 年开始在 DB2 开发团队工作。他拥有 20 年的软件开发、测试和支持经验。Enzo 积极致力于客户管理,以及 OLTP 和 Warehouse 开发领域,并著有 The High Availability Guide for DB2 一书,在 DB2 和集成方面拥有许多专利和出版物。

Andriy Miranskyy 照片

Dr. Miranskyy IBM 多伦多实验室 IBM Information Management Software 部门的一名 Quality Assurance 开发人员。他的工作和研究兴趣是软件工程中的迁移风险领域,致力于软件质量保证、程序理解、软件需求、软件体系架构以及项目风险管理。Andriy 在 Western Ontario 大学获得应用数序博士学位。他在信息管理和制药行业有着 15 年的软件工程经验。Andriy 在软件工程领域有许多的出版物和专利。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


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


忘记密码?
更改您的密码

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

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 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=793076
ArticleTitle=扩展测试系统上与 DB2 for Linux, UNIX, and Windows 内存相关的配置参数
publish-date=02132012

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。