Benchmark Factory 使用简介之Custom Test
Custom Test在Benchmark Factory中是指你可以把各种测试组合到这个自定义测试中,也可以只用某一种测试类型组织你的Job。自定义测试类型分为Mix test, Replay test, Goal Test, Scalability test。如图:
Custom Test支持大部分数据库:Oracle, SQL Server, MySQL, PostgreSQL, DB2, SAP, Teradata, 只是有一些数据库需要创建ODBC数据源并在Benchmark Factory中Database Type->Other中创建连接。
下图是一个ODBC 连接所创建的各种测试的组合:
Custom Test各测试类型简介:
1. Mix Test:事务在设定的时间内在数据库中按事务权重的比例混合执行寻找最大的TPS,也就是说,权重大的事务执行次数就多,而每一个迭代执行多少事务数跟虚拟用户数和设定的时间相关,如果只设置一个User Load那表示在这个Job执行时只创建一个Session, 这个Session在设定的时间内不断地执行我们创建的事务,直到设置的时间结束。通过这个测试我们可以把在实际环境中所有可能执行的事务混合到一个Job,跑这个Job测试对数据库性能的影响。
下面创建一个相同权重的Mix测试,New->New Job Wizard-> select connection->Add workload->Custom Test->Mix Test…->Add Test。
点击0 Transaction(s)打开添加事务窗口:
点击Add SQL Transactions可展开下拉列表,显示可以创建的测试类型,点击Add User Scenario可展开可以创建的Scenario类型. 点Replay User Load 将打开一个创建各种回放测试的向导。(注:Add User Scenario ->Add From Session Metafile是指导入一些XML文件,比如做capture完成后生成的XML文件)
这里我们只加2条简单的SQL, Add SQL Transactions点右边的加号,打开如图所示的创建SQL 的界面。
创建了如下的 2个测试,并在User load里只选了User load 1, Timing设的1分钟
Run Job,结果如下,2个事务具有很相近的执行次数,因为它们的权重都是一样的。
2. Replay Test: 顾名思义,这是一个回放测试,每个session只执行一次相应的事务。Users就是创建的Session数。如果有一个基准事务在哪一步没有执行成功,我们可以加到这里只执行那一步,如果我们想要创建一些对象,那可以把SQL放在Replay Test中。
Run Report:
3. Goal Test: Goal Test是用来找出在并发用户数不断加大的情况下能达到的最大的TPS和在响应时间固定的情况下能达到的最大的并发用户数userloads。如TPS就是在跑测试的时候去检查是否达到最大的TPS,如果前面的TPS大于后面的TPS,这个Job就会自动停止并指出在这个Userloads的设置下已达到最大的TPS。
Goal Test跑的时候是跟Mix测试一样的,下面看一个不一样权重的Job:
Goal Test的Options选项用以设置是找最大的TPS还是并发用户数:
Run Report:
如下图当userload 为50时达到最大的TPS。
我们再查看一下不同权重的执行次数:
4. Scalability Test 是在负载变动的情况下比较事务的性能。在这种测试中,每一个迭代执行的事务数量都是一样的,所有的并发用户数都执行相同的事务。
Scalability Test的Job如下:
这种Job的Timing设置是不一样的:
Run Report:
在现实中,我们执行事务的时间可能会有间隔,如果我们想设置或修改事务的时间间隔可以修改事务的Latency: