网站建设
联系我们

BMF与RAC测试白皮书-Load Testing and Monitoring

发布于:2014-02-12 16:57来源:未知 作者:admin 点击:
1. 简介 
Oracle Real Application Cluster (RAC) 将几个独立的服务器/节点组合成一个数据库系统。 作为群集数据库解决方案,RAC 提供两个主要功能:对业务连续流的可伸缩性和可用性。可伸缩性是一个相对的概念,它基于一个简单的规则,即:随着访问系统的用户数增加,RAC 配置应能够处理所增加的活动。可用性是当群集中一个或多个组件发生故障时系统提供连续服务的能力。 
要确保 RAC 提供所需级别的可伸缩性和可用性,群集必须能够跨越所有节点实现负载平衡,这样在群集中的一个或多个节点发生故障时,用户就可以不受影响并且可用性能够得到保持。需要更大容量时,可以不费力地添加附加节点。组织虽然花费了时间和金钱来设置 RAC,但是,它们还必须确保其系统具有稳定性,能够经受添加节点时用户环境需求的考验。 
本白皮书提供一个用于实现、管理和执行 Oracle Real Application Cluster 的全部诊断功能的加载测试方法,以便不论对 RAC 环境施加什么要求,都可以获得最佳用户服务时间。 
1.1. 什么是 RAC 数据库加载测试? 
RAC 数据库加载测试可确定在各种使用级别的系统性能,这样 DBA 就可以确保 RAC 实现的两个主要目标 — 可伸缩性和可用性 — 得到满足。不适当的配置或测试方法会阻止许多公司达到其数据库的最高效率,使客户和最终用户因糟糕的应用程序性能而受挫。加载测试对确保 RAC 系统满足因数据库工作负载或配置变化引起的需求非常重要。 
1.2. RAC 加载测试的目标 
组织花费时间和金钱设置 RAC,需要确保可伸缩性和可用性。RAC 加载测试过程中的主要目标为: 
•确保群集正确配置。 
•验证硬件配置(包括操作系统)能够如制造商宣传的那样伸缩。由于每种硬件组合都不相同,所以存在组件的不同变换和组合。它们单独的性能特征和组合的性能特征可能不尽相同。 
•验证应用程序能够在群集上伸缩。即使应用程序最初在单个(非 RAC)实例上能够运行,也不能保证它能在 RAC 上伸缩。 
•适当调整组件。 
对 Oracle 的加载测试和监控 
 
1.3. 使用标准基准测试确保群集稳定性 
加载测试 RAC 是确保数据库稳定性的最佳方式。 可使用标准基准(例如 AS3AP 和 TPC-C)来创建工作负载。 
测试开始前,除了要测试的一个实例外,需要关闭群集中的所有实例。通过对该实例进行加载测试,您实质上是在调整操作系统设置。也就是说,您在确保添加群集件和其他群集相关组件的开销(例如互联) 前正确配置了该节点。 
测试完第一个实例后,该测试的配置变更自动复制到第二个实例,确保群集中的第二个节点得到调整。两个节点都得到调整后,您就可以跨越群集中的所有节点运行加载测试,每个节点都有一个不同的目标。以下列表概括了加载测试期间查看的内容: 
•群集上的互联流量:这是一项重要测试。互联是提供群集中所有节点之间数据传输的主要硬件层。可以确定互联配置问题(例如,未正确设置参数/缓冲区大小)。如果未适当调整群集,则随着实例之间共享越来越多的数据,群集的性能会下降。 
•故障转移组件性能:实现 RAC 的一个主要原因就是为了改善服务器可用性。加载测试可以测量组件群集的性能故障转移和可用性。故障可能包括互联、到存储区域网络 (SAN) 的光纤通道、节点和实例。 
•调整 Oracle 相关参数的一般加载测试:行业标准基准(例如 TPC-C)针对群集中的两个实例生成加载测试,允许调整 Oracle 相关参数。 
 
运行加载测试和获得可接受的性能后,可以将这些结果/参数作为基线保存以确立加载测试方法中的里程碑。 这样就建立了一个群集,它是稳定且经过调整的,并且未加入任何客户应用层。 
1.4. 验证 RAC 系统伸缩 
对实例进行加载测试后,查看应用程序数据在 RAC 环境中如何伸缩是很重要的。这是一个 RAC 实现经常失败的领域。许多数据库专业人员认为无需测试可伸缩性即可简单地将 RAC 迁移至其应用。 
为测试可伸缩性,可以分析使用 10046 事件生成的 Oracle SQL 跟踪文件,然后针对数据库实例生成一个负载。这样就将数据库层与应用层隔离,并测试用户通常通过应用程序执行的所有查询。如果通过应用程序执行时相同的查询未成功执行,这就清楚地表明瓶颈源是应用程序,而不是如人们可能猜测的那样是数据库。 
1.5. 对组件进行适当调优 对 Oracle 的加载测试和监控 
 
运行加载测试和确定 RAC 配置后,用户必须定位生产中需要优化以获得可接受性能的 SQL 语句。这样就完成了 RAC 测试过程,确保已测试了数据库的所有方面以提供最佳用户满意度。 
1.6. 实现 ORACLE 主发布之前进行 RAC 测试 
建议在实现 Oracle 主发布(例如 Oracle10g)或主要配置变更(例如 RAC)之前,在新数据库环境中模拟您的生产工作负载。这使您可以收集有关数据库性能和可伸缩性方面预期的测试数据。示例包括 Oracle Database 9i 和 Oracle Database 10g 之间、Oracle 非 RAC 和 Oracle RAC 配置之间、以及使用不同数目的 RAC 节点时的性能差异。 
2. RAC 测试解决方案 
Quest Software 为 RAC 加载测试和诊断提供了两种解决方案: 
•Benchmark Factory®for Databases 
•Spotlight®on RAC 
 
2.1. BENCHMARK FACTORY FOR DATABASES 
Quest Software 的 Benchmark Factory for Databases 将重点集中放在 RAC 系统上,这是在标准测试环境中难于实现的。通过在出现问题前对系统容量和性能瓶颈进行确定,Benchmark Factory 使主动测试更为方便,这将减少停机时间、开发费用和可能的收入损失。Benchmark Factory 提供以下功能: 
•在 RAC 实例上分配加载测试。 
•确定 RAC 节点的正确数目。 
•使用最少量硬件模拟数千并发用户,提供可伸缩性以模拟大量用户。 
•使用行业标准基准(AS3AP、TPC-B、TPC- C、TPC-D 和可伸缩硬件)生成负载。 
•通过导入和重现 Oracle SQL 跟踪文件和具有 SQL 脚本的其他类型文件生成负载。 
•控制客户机上安装的代理程序生成多个虚拟用户会话,使工作负载模拟现实世界用户环境。 
•使用可靠的数据点确定数据库吞吐量和容量。 
•查看实时测试结果,提供各 RAC 节点数据库性能的即时反馈并允许对关键数据库系统进行准确评估。 
对 Oracle 的加载测试和监控 
 
 
•在同的数据库间和 Oracle RAC 节点间比较性能指标。 
 
2.2. SPOTLIGHT ON RAC 
Spotlight on RAC 为 Oracle RAC 环境提供完整的诊断功能。Spotlight on RAC 通过收集群集中每个实例上的性能标准然后 进行 适当的 计算以提供 RAC 范围的诊断信息,将 RAC 诊断提高到一个全新的水准。这使您可以快速实时发现位于节点、群集或互联层次的任何性能瓶颈。Spotlight 确定和诊断数以千计的性能问题, 不论 它们是 特定用户、资源密集的 SQL 事务、I/O 瓶颈,还是锁等待或其他确定的问题源。 
Spotlight on RAC 会回答与 RAC 性能有关的许多问题,例如: 
•我的群集中每个实例表现如何? 
•数据库作为一个整体表现如何? 
•我的数据库是否遇到与群集相关的竞争? 
 
3. 实现 RAC 加载测试过程 
使用 Benchmark Factory for Databases 和 Spotlight on RAC 测试 RAC 系统很简单直接,只需少量设置。 该过程包括以下步骤: 
1) 使用 Oracle 跟踪文件记录生产活动并收集 SQL 等待事件。 
2) 这使您可以准确模拟生产活动(包括会话并发)、延迟和绑定变量值。 
3) 使用 Benchmark Factory for Databases 运行 RAC 加载测试。 
4) 使用 Spotlight on RAC 在负载下监控 RAC 系统。 
 
3.1. 记录生产活动和收集 SQL 等待事件 
在 Oracle 中启用跟踪使您可以记录生产活动(包括会话之间的并发)、会话活动和延迟(包括绑定变量)。要在 Oracle 中激活跟踪,请使用以下命令: 
ALTER SYSTEM SET EVENTS ‘10046 trace name context forever, level 4’ 
Toad for Oracle 提供了一个可视化跟踪实用程序来设置 Oracle 跟踪文件。 对 Oracle 的加载测试和监控 
 
3.2. 使用 BENCHMARK FACTORY FOR DATABASES 运行 RAC 加载测试 
使用 Benchmark Factory for Databases 进行测试可从两个方面入手: 
•针对群集中的每个实例使用预定义负载 
•使用 Oracle 提供的标准负载平衡准则测试群集中的每个实例 
 
1) 针对各种实例使用预定义负载测试标准 
如果使用这一方法,则 Benchmark Factory RAC 加载测试过程的第一步就是设置 Oracle tnsnames.ora 文件。 
a) 设置 tnsnames.ora 文件以对 RAC 系统进行加载测试 
 
要使用 Benchmark Factory测试 RAC 系统,首先编辑Oracle tnsnames.ora文件以设置群集连接。这通过在文本编辑器中打开该文件并将网络服务名分配给根节点来完成。然后使用同一网络服务名加一个编号为每个节点添加一个条目(图 1)。 
 
图 1. 在 tnsnames.ora 文件中为 RAC 测试设置群集。 
b) 使用 RAC 分配的百分比创建概要文件 
对 Oracle 的加载测试和监控 
 
接下来创建 Benchmark Factory 概要文件以运行 RAC 加载测试。概要文件是测试时 Benchmark Factory 用来与系统通信的一组信息。此信息包括服务器名、IP 地址和用户名。使用概要文件创建向导创建概要文件。Benchmark Factory 通过设置 RAC 概要文件完成 RAC 负载平衡。在概要文件设置中,设置所需数目的节点和百分比来跨 RAC 系统分配负载,以此模拟现实世界情况(图 2)。 
 
图 2. 设置 RAC 节点加载测试百分比。 
c) 运行 RAC 加载测试 
 
Benchmark Factory 使您可以在不同的数据库环境中重现生产工作负载和 SQL 脚本,并将重点集中放在数据库上。 通过在测试数据库中重现生产活动,Benchmark Factory 使您可以在生产中发生潜在性能问题之前确定它们。 这类主动测试最终可减少停机时间、开发费用和可能的收入损失。 
Benchmark Factory 使您可以导入各种用户负载,包括: 
· 测量测试中系统的性能的行业标准基准。Benchmark Factory 提供 AS3AP、可伸缩硬件、TPC-B、TPC-C 和 TPC-D 标准基准 
· 带绑定变量的 Oracle 跟踪文件 
· 来自各种工具用于重现的导入,例如来自存储库的 Quest Performance Analysis SQL 
 
Benchmark Factory 附带的向导可引导您逐步完成 RAC 测试过程。例如,新项目向导使您可以创建加载测试的工作负载。运行加载测试后,可以通过选择跟踪文件、应用过滤选项然后重现文件来导入 Oracle 跟踪文件工作负载。 
Benchmark Factory 在导入 Oracle 跟踪活动(图 3)时,保持模拟生产环境的事务间并发和事务间定时。生产中发生的活动可在测试数据库中使用无限数目的并发用户来模拟。 对 Oracle 的加载测试和监控 
 
 
图 3. 在 Benchmark Factory 中导入 Oracle 跟踪活动用于重现。 
重现生产活动时,可以模拟“如果-情况会如何”场景。 例如,如果生产工作负载提高 10 倍情况会如何?这使您可以预测工作负载提高时潜在的性能问题。 
d) 查看测试结果和确定正确数目的 RAC 节点 
 
分析是 RAC 加载测试的最终目标。运行测试时,您同时需要实时结果(图 4)和保存格式的结果。Benchmark Factory 为您提供的测试结果易于解释并使您可以将单个结果归于单个任务和用户。不论查看的是实时图还是历史图,Benchmark Factory 都使用同一图形工具,使您可以定制图形和定制加载测试查看需求。 对 Oracle 的加载测试和监控 
 
图 4. Benchmark Factory 实时测试结果。 
部署 RAC 环境时,一个主要的困难就是为给定的应用程序或数据库确定要部署的 RAC 节点的正确数目,同时最小化 RAC 环境的实现和维护费用。Benchmark Factory for Databases 可以针对不同数目的 RAC 节点生成工作负载或重现实际生产活动。然后负载可以在不同的节点之间得到平衡。例如,如果您在测试两个节点,则您可以在关闭群集中的一个实例时,对另一个实例进行加载测试。这会依次调整所测试群集的实例和操作系统。调整节点后,可以跨群集中的所有节点运行加载测试,并指定一个目标。 
如果没有 Benchmark Factory for Databases,设置正确数目的 RAC 节点就会变成一个尝试错误的过程,缺少任何实际的指标。 与此形成对比,使用 Benchmark Factory for Databases 提供的详细程度的信息,公司可以消除 实现 Oracle RAC 环境时 大量不必要的费用。例如,用户可以准确确定为满足其应用程序 可伸缩性 和性能要求所需要 的节点的特定数目。图 5 显示了 Benchmark Factory 中针对不同群集节点的 RAC 性能测试结果。 对 Oracle 的加载测试和监控 
 
图 5. 在 RAC 环境中重现工作负载后 Benchmark Factory 中的性能比较 
2) 使用标准负载平衡准则进行 RAC 测试 
使用 Oracle 提供的标准负载平衡准则测试群集中的每个实例时,第一步就是确保已为用于连接数据库的 TNS 连接描述符定义了所需的全部参数。 
a) 验证用于连接数据库的 TNS 连接描述符。 
 
Oracle 为群集提供了几种层次的负载平衡,例如:客户端负载平衡、服务器负载平衡,从 Oracle Database 10g Release 2 起,还提供了连接时间负载平衡。 对 Oracle 的加载测试和监控 
 
图 6. 验证 TNS 连接描述符。 
对各种负载平衡类型的讨论不在本文的范围之内。但是,启用群集节点的负载平衡所需的最小配置是使用适当的连接信息定义 TNSnames 连接描述符,如图 6 所示。 
使用 Benchmark Factory for Databases 验证了 TNS 连接描述符后,下一步就是根据测试类型和要测试的标准定义加载测试概要文件。 
b) 创建概要文件 
 
如图 7 所示,使用概要文件创建向导创建概要文件。此信息包括服务器名、IP 地址和用户名。 
 
图 7. Benchmark Factory 概要文件创建向导。 
c) 运行 RAC 加载测试 
对 Oracle 的加载测试和监控 
 
完成概要文件定义后,下一步就是执行实际测试。Benchmark Factory 提供了几种类型的测试选项。您可以选择使用行业标准基准测试,或选择使用在不同数据库环境中重现生产工作负载和 SQL 脚本的方法。 
使用上述任何一种方法进行测试的目标都是帮助您监控 RAC 数据库是否出现竞争,并正确诊断可以调整以改善群集整体性能的区域。 
4. 使用 QUEST SPOTLIGHT ON RAC 监控 RAC 
Quest Software 的 Spotlight on RAC 为问题识别和诊断提供了选项。使用正确数目的节点和加载测试设置 RAC 系统后,数据库性能监控的下一阶段即告开始。DBA 必须了解: 
•群集中的实例表现如何 
•数据库作为一个整体表现如何 
•数据库是否遇到与群集相关的竞争 
 
RAC 是一个“共享磁盘”群集解决方案。RAC 中的每个节点通过共享磁盘子系统对所有数据库数据拥有相同的访问权限。数据既不对特定节点进行分区,也不跨节点进行复制。高速网络互联使每个节点的数据内存视图保持一致。Oracle RAC 配置(图 8)具有以下架构特征: 
•许多 Oracle 实例跨几个节点运行。 
•许多实例共享Oracle 数据库的单个物理副本。 
•所有实例都具有相同的数据和控制文件。 
•每个实例都拥有各自的在线日志和撤销段。 
•每个实例针对同一数据库同时执行事务。 
对 Oracle 的加载测试和监控 
 
图 8. Oracle RAC 配置。 
Spotlight on RAC 为 RAC 环境提供完整的诊断功能(图 9)。它通过对群集中的每个实例发出查询,然后执行适当的计算来提供 RAC 范围的诊断信息,以此将 RAC 监控提高到一个全新的水准。 对 Oracle 的加载测试和监控 
 
图 9. Spotlight on RAC 诊断信息。 
Spotlight on RAC 评估七项 RAC 特定的警报(图 10),如果满足以下条件,则提供与 RAC 明确相关的诊断信息并发出诊断警报: 
•数据库负载未在群集实例中平均分配。 
•维护群集一致性的开销过大(例如,数据库由于是群集的一部分而性能下降)。 
•实例间的互联有较高的延迟。 
•实例间有大量通信(这可能表明需要进行数据分区)。 
•数据块在群集中的实例之间传输时损坏或丢失。 
•共享磁盘子系统遇到竞争。 
  
图 10. Spotlight on RAC 警报。 
Spotlight on RAC 为 RAC 的日常监测拓展了一个全新的领地。通过从群集中的每个实例收集详细信息,它同时在实例和群集范围层次提供 相关诊断 信息。Spotlight on RAC 提供: 对 Oracle 的加载测试和监控 
 
 
•RAC 物理架构的描述性表示 — Spotlight on RAC 的主页显示了群集的关键物理组件的信息视图:各个实例、互联和 I/O 子系统、以及它们之间的数据流。 
•深入挖掘 Spotlight on Oracle — 如果群集中的特定实例显示问题(通过 Spotlight on RAC 主页上突出显示的颜色),您只需要一次点击即可深入挖掘到位于 Spotlight on RAC 底层的 Spotlight on Oracle。 
•集中的 Oracle 警报 — Oracle 问题(例如栓竞争)可能在群集的任何一个特定实例上发生。这是否值得关注取决于问题是否延伸到群集中的大多数或全部实例。Spotlight on RAC 从实例汇集了所有数据并通知您群集作为一个整体是否有问题。 
•RAC 特定的警报 — 许多问题特定于 RAC 安装:不平衡的负载、群集延迟和开销、损坏和丢失的数据块、以及高速缓存未命中。Spotlight on RAC 评估和发出 RAC 特定的警报,这些警报会影响群集的整体状态和性能。 
•对自动存储管理 (ASM) 的支持 — Spotlight on RAC 监控 ASM 的操作,提供关联诊断信息。 
 
5. BENCHMARK FACTORY和 SPOTLIGHT ON RAC 的独特功能 
Benchmark Factory 为需要保证 RAC 应用程序能够伸缩的数据库专业人员提供了独特的 RAC 加载测试功能。与其他加载测试工具不同,Benchmark Factory 是出厂设置好的加载测试系统,它不需要进行编程或广泛的设置,它提供了完整的 RAC 测试功能,包括: 
•允许测试人员使用来自实际生产数据库的跟踪文件测试RAC 系统 
•提供允许对 RAC 节点进行实际测试的行业标准基准 
•同时提供实时并存储测试结果以分析 RAC 节点 
•允许测试人员设置“如果-情况会如何”场景以确定实际数据库工作负载对 RAC 系统有什么影响 
•允许测试人员针对单个节点或一次针对几个节点运行加载测试 
•提供各个 RAC 节点的图形详细分析以根据现实世界活动确定实际性能 
 
Spotlight on RAC 是在 RAC 架构下运行的 Oracle 数据库的一款功能强大的诊断和解决工具。其独特的用户界面为您提供了数据库上活动的直观和可视化表示,并迅速成为保持 RAC 系统在最高性能状况下运行不可缺少的工具。Spotlight on RAC 使 IT 专业人员可以: 对 Oracle 的加载测试和监控 
 
 
•查看来自所有实例的组合信息以从整体上获得群集的 Spotlight 视图 
•查看群集架构的图形表示 
•监控全局状态和活动 
•查看实例层次的状态和活动 
•跟踪 RAC 特定的问题,其中包括: 
•互联延迟 
•不平衡的群集 
•过高的群集开销 
 
6. 结论 
Oracle Real Application Cluster 提供了一种为 Oracle 数据库环境提供可伸缩性和可用性的手段。通过对 RAC 系统进行加载测试,DBA 可以测量群集的性能故障转移和可用性,并对数据库效率获得清楚的了解。此外,他们可以增进对系统性能的洞察力并更好地确保客户连续满意度。 
有效的数据库必须随着用户数目进行伸缩并可靠地响应;还必须对数据库进行监控以确保从服务器到用户的平滑数据流。Quest Benchmark Factory for Databases 和 Spotlight for RAC 通过提供确保 RAC 系统性能不仅满足而且超过客户和最终用户预期所需的易用性、准确性和数据点,简化了 RAC 加载测试和监控过程。 
ABOUT THE AUTHOR 
Claudia Fernandez is the senior product manager of database performance and scalability products at Quest Software. Claudia has contributed to the strategic direction of database tuning products for multiple RDBMS since early 2000. She has presented at several technical conferences on RDBMS and application performance tuning topics. Claudia holds an M.S. in computer science and has 10 years of industry experience working with different databases, such as SQL Server, Sybase ASE, Oracle, DB2 UDB and other associated technologies. 
Bernard Farrell is a technical writer at Quest Software, Inc., writing technical documentation on Benchmark Factory for Databases. He has 15 years of technical writing experience, with five years of experience documenting database applications. 
ABOUT QUEST SOFTWARE, INC. 对 Oracle 的加载测试和监控 
 
Quest Software, Inc. delivers innovative products that help organizations get more performance and productivity from their applications, databases and Windows infrastructure. Through a deep expertise in IT operations and a continued focus on what works best, Quest helps more than 18,000 customers worldwide meet higher expectations for enterprise IT. Quest Software can be found in offices around the globe and at www.quest.com. 
tag标签:
------分隔线----------------------------
------分隔线----------------------------