Benchmark Factory 最佳实践

我们面临的是预算不断缩减的时代。从现有的数据库环境中获得更好的性能愈发重要。这意味着我们需要准确评估现有硬件的性能,既不能高估也不能低估硬件的需求。此外,更为重要的是需要确保硬件和软件的升级和服务器的整合不会给应用和数据库的性能带来负面影响。

Benchmark Factory® for Databases可帮助用户简单快速地完成这些任务。Benchmark Factory® for Databases是一个测试工具,可在非生产环境模拟用户负载对数据库进行测试,同时也可以测试应用的可扩展性,并可按行业标准的基准测试对新硬件和软件进行评估。

了解在什么情况下使用Benchmark Factory 是该解决方案的关键。本文提供了最佳实践帮助用户确定根据用户的目标应该使用哪种测试,同时指导用户所要执行的各项测试步骤。

应该使用哪种测试?

在测试之前,重要的是确定目标和影响测试场景的因素。例如,如果用户要测试服务器性能,应考虑:

  • 用户是否有现成的应用用于验证服务器性能?
  • 用户是否希望看到软件的升级,打补丁或服务器整合对性能的影响?
  • 用户是否需要确保现有应用将支持更多的用户,并依旧达到SLA?

只要用户根据测试目标确定了希望测试的类型,Benchmark Factory 可向用户提供多种选项控制后续的测试。

下文将说明如何使用Benchmark Factory 完成用户的测试目标。

 

负载重放测试

负载重放可让客户重放现有应用的负载。这可验证软件和硬件升级,服务器整合和负载的可扩展性。

按下面步骤执行负载重放测试:

1. 备份数据库

2. 捕获一个或多个trace.

3. 从捕获的trace中创建负载。

4. 将数据库恢复到重放的始点状态,与记录trace时一致,这是避免完整性问题。

5. 执行负载回放

下面将详细描述如何使用Benchmark Factory 在Oracle 和SQL Server上执行负载回放。

从Oracle Trace 文件重放负载

为执行Oracle负载重放,首先应将trace 文件抓取到Benchmark Factory中。在新建 Load Scenario Wizard(如图1)中选择"Replay load form an Oracle Trace file" 。然后,按照该向导操作,创建一个重放测试。

innovatedigital.com benchmark

图1,使用  Load Scenario Wizard 重放Oracle 负载

 

根据Trace 文件的大小(基于导入语句的数量),重放测试可能使用元文件重放抓取的用户场景。否则Benchmark Factory将显示事务,如下图显示:

图2,Oracle 负载事务

从SQL Server Trace Table中重放负载

从 Benchmark Factory’s Load Scenario Wizard 中选择 “Replay load from SQL Server trace table”:
图 3. 使用 Load Scenario Wizard 重放  SQL Server 负载
 
然后按照向导的步骤创建重放负载。与Oracle场景类似,显示的事务与traace表中的语句数量有关。如图:
图 4. SQL Server 负载事务

负载重放的“假设“场景

负载重放测试的一个好处是判断现有的应用是否可在可接受的性能下支持更多的用户。通过负载重放,用户可以模拟用户增加时的影响。用户可以在“假设”场景下执行扩展性测试。只通过改变用户的数量即可轻松获得测试结果,如图:
图5. 改变扩展测试的用户数量
为了更真实模拟真实的用户,需要变换一些SQL的绑定参数。用户需要确保模拟的用户不能执行同样的查询,执行同样的插入操作。同时,应该修改语句之间的延迟,因此用户不会在同一时间提交SQL。

负载重放结果

无论执行的是哪种类型的测试,查看用户场景和比较执行次数都可提供很好发现问题的方法。
图6. 负载重放结果
通过 Benchmark Factory, 用户可以通过在用户场景中执行的每个事务轻松定位需要优化的SQL。如图:
图7. 识别可优化的SQL