优化虚拟 IBM Power Systems 中的 IBM DB2 pureScale 事务吞吐量

如今,硬件虚拟化盛行于整个 IT 行业。用一台服务器执行之前几台服务器才能完成的工作量,对于任何规模的企业来说都是一个极好的价值取向。尽管有大量文档(在线文档和印刷文档)可供使用,但浩瀚的资源很难驾驭。本文将向您介绍如何通过提供一系列高级的、划规和部署的最佳实践,以及一系列简易的优化步骤来应对这一挑战,使用的样例数据库环境为 IBM POWER7® 服务器运行一个 IBM DB2® pureScale®。

Mala Anand, PowerVM 性能主管, IBM China

http://www.ibm.com/developerworks/aix/library/au-aix-optimize-ibm-db2/mala_anand.jpgMala 是 IBM Systems 与 Technology Group System Performance 的一名高级技术人员。她领导 Power Virtualization 性能测试,专门研究处理器和内存虚拟化以及 IBM PowerVM 的有竞争性的性能。她曾在 IBM Linux 技术中心领导 x86 Linux 的网络和企业工作负载性能工作。



2012 年 7 月 16 日

简介

如今,数据库服务器有可能在一个虚拟机 (VM) 上实现,其中处理器、内存、磁盘和网络组件都是从物理机器上的一个共享的可用资源池中进行分配。这使得可以将多个工作负载整合到单个服务器上。尽管较大的物理机器可能需要更高的前期成本,但是将许多工作负载整合到一个服务器上意味着能够更高效地使用系统资源,这有助于降低电力消耗、减少数据中心空间占用,最终实现更低的总拥有成本 (TOC)。

然而,这种范式在物理机器中引入了一个协调机制(也是这种范式的本质),可进行分配、映射和管理虚拟主机或 IBM Power Systems 上称作的逻辑分区 (LPAR) 的物理资源。这一机制(通常称之为虚拟机管理程序)的实现可以提供一个健壮的、可伸缩且可管理的虚拟化解决方案,可帮助最小化客户投资回报率 (ROI)。

虚拟机管理程序是 IBM PowerVM™ 虚拟化解决方案的一部分,可以获取 LPAR 配置文件并将它们以一种高效无缝的方式部署到 IBM Power Systems。它可以虚拟化多个操作系统 (OS),还具有可扩展性,可以在一个服务器上部署多达数千个 VM,同时也可以集成一整套工具来快速便捷地规划、部署和管理 LPAR。

例如,使用 IBM PowerVM 解决方案,不仅可以设置 LPAR 接收的资源数量,还可以控制(来自同一界面)这些资源(比如,处理器和内存)在其他系统 LPAR 之间的共享方法。如果有一些不太重要的 LPAR,它们经常空转,最好实现一个共享处理的 LPAR 配置文件。这意味着,未被使用的处理资源可以放入共享处理池,供其他 LPAR 使用。如果 LPAR 是任务关键型的,尽管有时候也是闲置的,但您需要设置一个专用处理配置文件,处理资源严格耦合该 LPAR,其他 LPAR 不可用。

有大量虚拟化文献可供使用(参见以下参考资料 部分),从简短文章到综合书籍;锁定各种场景,从特定数据库和应用程序中间件工作负载到通用的主机部署策略。本文将提供一个 LPAR 规划和部署最佳实践的简短列表,随后通过一系列最优化步骤使用一个样例数据库环境在 IBM POWER7® 服务器上执行一个 IBM DB2® pureScale® 安装,展示了这类最佳实践的优势。


最佳实践

为了让物理服务器为附加 VM 提供额外资源,优化硬件使用以使服务器性能最大化的需求越来越大。以下这组最佳实践建议可以帮助您确保最优配置的实现和维护。

1. 理解和记录服务器意图、目的和目标

记录服务器的目标不仅可以帮助系统架构师和管理员在一个有限列表上关注其规划,同时也提供了一个文档,可供新团队或成员将来使用该服务器时参考。即使使用模式并不是恒定不变的,通过维护团队使用服务器的协议来维护一个动态文档也是很有价值的。使用 IBM System Planning Tool (SPT) 完成这一步轻而易举。有关 SPT 的更多详细信息,可在本文结尾参考资料 中的其他 部分找到。

2. 确保系统固件是最新的

要获得性能最优的虚拟机管理程序,安装带最新版本固件的系统以供使用。如果设置了一个 Hardware Management Console (HMC),您可以使用其维护功能进行更新。

图 1. 选择好服务器后,打开 “Updates” 任务查看 “Upgrade Licensed Internal Code to a new release” 选项。
选择好服务器后,打开 “Updates” 任务查看 “Upgrade Licensed Internal Code to a new release” 选项。

有关固件更新的更多详细信息可在本文结尾参考资料 中的固件更新过程 部分找到。

如果 HMC 不能用于更新服务器,还有一种方法可用,通过 IBM 支持站点 手动下载补丁,该站点也提供其他组件(比如 HMC 或 SPT)的补丁和更新。

3. 确定合适的 LPAR 硬件拓扑(处理器、内存和磁盘等)。

了解服务器将做何用之后,计划主机需要适当的资源以最有效的方式实现目的。这不仅仅涉及资源数量(例如,相比 16 个处理器,需要 32 个处理器,相比 128 GB RAM,需要 256 G B RAM ),也涉及到它们以何种方式被虚拟化:共享处理、专用处理、专用捐赠处理、活动内存共享、活动内存重复数据删除、虚拟 I/O Server (VIOS) 部署,等等。

有关虚拟化最佳实践的更多文档可通过在线获得。参见参考资料 中的虚拟化 部分。

4. 首先接通最重要的 LPAR 电源。

处理器与存储器以及处理器之间的亲和性是影响系统性能的重要因素。LPAR 资源遍布的 Multi-Chip Modules (MCMs) 和 Central Electronic Complex (CEC) 闭包越少,执行得就越好。虚拟机管理程序根据现有资源池中的资源,为一个正在启动的 LPAR 计算最优的、最一致的资源分配,它也存储其首次启动时为 LPAR 计算的资源分配。因此,处理器和内存资源池足够大以产生最优亲和性至关重要。其次,首先激活大多数存处理器和内存关键型 LPAR,确保获得最好的最优资源比对机会也同样至关重要。

严格地说,只在虚拟机管理程序没有为服务器分配 LPAR 时,启动顺序才是必要的。也就是说,只要有从未被激活或者启动的 LPAR,或者 LPAR 的资源分配被清除(例如,使用 chhwres)时,服务器的启动顺序才很重要。例如,如果系统管理员要关闭正在运行的 LPAR、重启服务器,同时启动相同的 LPAR,启动顺序无关紧要:该虚拟机管理程序拥有需要在服务器启动过程中优化 LPAR 资源分配的信息。然而,不管怎么样,根据重要性次序启动 LPAR 可能比较容易,这样一来就不需要跟踪 chhwres 或 LPAR 创建事件。

该实践的一个小幅折中是使用一个有点不太直观的启动顺序,其中 VIOS 实例最后启动。这意味着,虽然最重要的 LPAR 首先启动,但是并没有实际运行,运行的都是平台固件代码 AA060011,直至 VIOS 启动并运行后 LPAR 才开始运行。


案例场景

在以下假设情况下,我们有个数据库管理员想要添加一个新 DB2 pureScale 成员 host5 到一个在单一 IBM Power System™ 770 测试系统 barcelona00-SN103EA7P 上运行的 DB2 pureScale 实例中,这类实例配置看起来像:

清单 1. DB 管理员想要添加 host05 到该实例,使 db2nodes.cfg 文件看起来像
0   host3 0 192.168.0.4 - MEMBER
1   host4 0 192.168.0.5 - MEMBER
2   host5 0 192.168.0.6 - MEMBER
128 host1 0 192.168.0.2 - CF
129 host2 0 192.168.0.3 - CF

DB2 成员添加成功之后,数据库管理员发现事务吞吐量性能看起来像下列示例,如图 2 所示:

图 2. 图 2. 观察 LPAR host05 上的 DB2 成员相比 host03/04 上的 DB2 成员为何相对较低,尽管使用的是相同的 LPAR 配置文件。
图 2. 观察 LPAR host05 上的 DB2 成员相比 host03/04 上的 DB2 成员为何相对较低,尽管使用的是相同的 LPAR 配置文件。

因为 DB2 成员通常是相同的(例如,同一个数据库、OS 和 LPAR 配置),对 host5 的 OS 和 DB 层的优化对性能影响较小。然而,最大的优化领域可能是虚拟化层,其中物理资源可以映射到虚拟设备。对于 LPAR 处理器和内存,AIX 命令 lssrad –av 列出了 Scheduler Resource Allocation Domains (SRADs)。理解 SRAD 布局有助于我们形象化有问题的主机的物理虚拟映射。通过 lssrad 输出中的差异表示,如表 1 所示,建议您关注事务吞吐方面的差异。

表 1. 注意,与 host03/04 相比,host05 资源跨多个 SRAD 不断蔓延,其中资源分布在 2 个处理器 “book” 的 4 个 MCM 上,而 host03/04 资源取自一个 book 的 2 个 MCM。
主机名host03/04host05
命令lssrad –a –v
输出
REF1     SRAD       MEM     CPU 
0 
0       31806.31    0-31 
1       31553.75    32-63
REF1     SRAD          MEM      CPU 
0 
0        27822.31      0-27 
1        3984.00       28-31 
1 
2        3984.00       32-35 
3        27569.75      36-63

从该样例输出中,管理员可以推断 LPAR host05 的性能特征需要提高,如果其处理器和内存资源分布更紧凑,类似于 host03/04。实现再分配最有效的方法是清除硬件资源分配。


优化步骤

实际上,有几组步骤可用来实现 POWER7 服务器上的性能增益。每组都有自己的一系列优点和缺点,客户可以选择最适合他们情况的那个。有一个快速简单的解决方案,但只能提供有限的性能提升,另一个解决方案更复杂,但是支持更大的性能收益,第 3 个解决方案需求最多,但是提供最大的性能增益。

最简单的、干扰最小的解决方案只不过是 LPAR 配置文件的一个更新(例如,内存最大增加到 1 GB),同时需要切断 LPAR 电源。后续启动时,您需要运行一个资源的 “就地” 再配置。

下一个选项是关闭数量有限的非关键性 LPAR,在停用的 LPAR 上运行 chhwres(参见下列步骤 3 了解 chhwres 的详细信息),然后以正确的顺序(按重要性排序,参见下列步骤 4 了解启动顺序详细信息)启动。相比前一个解决方案支持的单一 LPAR 域大小,该选项的资源域是多个 LPAR 大小,这就是为什么该选项具有更大的优化潜能。

类似地,最后一个选项的需求最不方便,然而可为虚拟机优化程序创建最大资源域以供运行,从而为最优分配提供最佳机会。最后一个解决方案组的步骤如下所示:

1. 关闭服务器上的所有 LPAR,包括 VIOS 实例

如果所有硬件资源参与再分配,其余的步骤将产生最大的功效。使用一个较大的资源池来运行,在 LPAR 启动过程中(步骤 4)的优化往往更明显。因此,即使 DB2 成员观察到了问题,我们也可以通过关闭系统上运行的其他 LPAR,比如 DB2 pureScale Cluster Cache Facility (CF) 或 VIOS,或同时关闭,来扩大资源池。

2. 重启服务器

现在,主机已安全关闭,关闭服务器,然后重新启动。这将会清除之前任何 LPAR 资源分配的虚拟机管理程序,在随后的主机启动(步骤 4)中有助于形成一个更优化的 LPAR 资源分配。

3.(代替步骤 2 )登录到 HMC 并为服务器上的所有 LPAR 运行 chhwres

在有些情况下,重启服务器可能并不可行,尽管所有 LPAR 已经关闭。例如,也许 LPAR 关机时间非常短,这样,就没有重启所需的额外时间。作为一个备选方案,您可以从 HMC 命令行运行 chhwres 命令来清除服务器虚拟机管理程序和 HMC 中的资源分配信息。

清单 2. -r 指定资源类型(‘mem’ 用于内存),-m 指定管理的系统,-o 表示操作(‘r’ 用于删除资源),-q 是我们想要操作的资源数量(以兆字节为单位),--id 是我们锁定的 LPAR 主机 ID。
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 2048 --id 1
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 2048 --id 2
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 65536 --id 3
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 65536 --id 4
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 65536 --id 5
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 65536 --id 6
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 65536 --id 7
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 65536 --id 8
chhwres -r mem -m "barcelona00-SN103EA7P" -o r -q 65536 --id 9

图 3 概括了可以在其中找到选项值的资源。

图 3. 图 3. 在 HMC (v7) 服务器视图中有好几个地方可以找到 chhwres 命令所需的值。服务器名可在顶部附近找到(见顶部橙色框),LPAR ID 在 “ID” 列下(左边绿色框),需要被清除的内存可在 Memory 列下找到(右边红色框)。
图 3. 在 HMC (v7) 服务器视图中有好几个地方可以找到 chhwres 命令所需的值。服务器名可在顶部附近找到(见顶部橙色框),LPAR ID 在 “ID” 列下(左边绿色框),需要被清除的内存可在 Memory 列下找到(右边红色框)。

4. 以重要性降序顺序激活 LPAR,也就是说,最重要的 LPAR 首先激活。

现在,硬件资源已经完全空闲,是时候重新优化资源关联了。虚拟机管理程序在计算最佳分配,特别是在使用一个充足的资源池工作时,表现得非常好。

完成这 4 个步骤后,我们就可以看到跨 3 个 DB2 成员的平衡性能了。如果再次调用 lssrad –av 命令,这 3 个 LPAR 的资源分配类似,甚至相同。

图 4. 图 4. 重新排列资源之后,失衡得到了处理,而我们最新添加的 DB2 成员现在也正在执行最初的预期。
图 4. 重新排列资源之后,失衡得到了处理,而我们最新添加的 DB2 成员现在也正在执行最初的预期。

参考资源与链接

虚拟化

操作系统和数据库层虚拟化

优化步骤过程

固件更新过程

其他

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。
  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
  • IBM DB2 pureScale
  • IBM PowerVM
  • IBM 系统规划工具
  • IBM Power System
  • IBM HMC v7 手册

条评论

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=AIX and UNIX
ArticleID=825938
ArticleTitle=优化虚拟 IBM Power Systems 中的 IBM DB2 pureScale 事务吞吐量
publish-date=07162012