一. Benchmark Factory 是什么
Benchmark Factory 是一款简单易用的数据库性能测试工具。它是通过模拟用户负载和事务在数所库的操作来衡量数据库的性能。它支持的数据库主要有Oracle, SQL Server, IBM DB2, SAP, MySQL,PostgreSQL, Teradata.
无论你是DBA, 开发人员还是测试人员,你都可以使用Benchmark Factory来测试你的数据库,比如你需要对数据库性能进行调优,你的硬件或者软件环境有改变,数据库迁移,对数据库进行性能监测,数据库Trace回放,或者直接录制生产数据库的操作然后在测试环境回放等 等 。
二. 运行环境
Benchmark Factory 不需要特殊的运行环境,只是针对数据库,需要有相应的数据库客户端,对于SQL Server, Windows有自带客户端,Benchmark Factory 也有自带一个2012的Native Client.
三. 测试类型
Benchmark Factory 提供的主要测试类型有:
基准性能测试(Industry Standard Benchmark Factory Test),混合基准性能测试(Artificial Test for Desired Effect), 数据库操作录制与回放(Capture/Replay Test),对用户自己捕获的Trace进行回放,可扩展性测试(Scalability Test), 用户自定义测试(Custom Test);创建/删除基准对象测试(Create/Delete Benchmark Objects Test)用于辅助基准性能测试。执行外部文件(Execute External File)可用于执行一些自定义的批处理文件和其它可执行文件等。所有的测试支持RESTAPI,可与CI工具集成。
四. 测试使用场景及实例
1. Industry Standard Benchmark Factory Test(TPC-C, TPC-E, TPC-H, TPC-D,AS3AP….)
这一类测试是根据国际上TPC组织(http://www.tpc.org/)提出的性能测试标准和规范实现的测试集合。这些测试是在数据库中创建固定的表,然后生成相应的数据(Create Objects for ###),之后跑一组固定的事务(但是事务个数,权重可修改)测试(如TPC-C的是TPC-C Transaction Mix),跑完可以运行一个删除对象的测试删除这些数据(Delete Objects for ###)。我们可以根据需要更改生成数据的大小,数据存放的表空间,执行事务时的用户数。
那哪些场景会用到这种测试呢?笔者以为有以下几种情境:当新装一个数据库需要对它进行性能调优,在事务数确定的情况下是否可达到预期的并发用户数;当需要更新数据库版本时,对新旧版本的性能进行比较;当相同的数据库要迁移到新的软硬件环境上时,对它的性能进行比较;当开发出的数据库产品对数据库的操作有改动时,测试它对数据库性能的影响;在数据库性能比较稳定之后,进行性能的监测等等。
下面我们创建 一个TPC-C Job实例:
首先创建一个connection: (注意创建任何一个Job 都需要先创建Cconnection)
1. 当连接创建好之后,我们点击主菜单上的New按钮打开New Job Wizard向导:
2. 点击Add Workload,选择Industry Standard Benchmark Test –> TPC-C
3. 点击Add Test,我们的 Job就创建好了(点击Run Job就可以跑了)。此页面所有的蓝色链接都是可以点开编辑的,下面我们就再了解下这些链接的页面:
4. 下面我们就点击Scale:1并把Scale大小改成10,Benchmark Size就发生了改变。
5. 然后我们点击Options选上并行创建Index(Distribute index creation(one index create per virtual user)。
此页各选项说明:
1. Distribute index creation(one index create per virtual user): 并行创建index
2. Distribute load using Benchmark Factory Agents: 使用Agent加载数据,不选直接用Console 加载(远程安装Agent的将在下一个分享)
3. Object/Data Retention:(无论哪一个选项,只要数据库中没创建过都会自动创建并加载)
a. Create/Load objects if objects don’t exist(no backup sets created): 当数据库中不存在这些表,对象的时候会创建,并加载数据, 但是当数据库中存在这些表和对象的时候就直接到TPC-C Transaction Mix test 这一步。
b. Delete benchmark objects after completion of job: 当测试跑完以后删除表和对象。
c. Refresh data using backup sets: 如果第一次用这个选项会在数据库创建一个表和对象的备份,之后再跑这个选项时就直接用备份数据恢复表和对象进行测试,这个选项会在数据库存2份相同的数据,需要占用更多的空间。但是这个选项只针对固定的Scale,如果第一次跑这个选项用的是scale=10,下次你还是要用相同的Scale。
d. Recreate objects and reload data every execution: 每次都把数据库中的存在的表和对象先删除,之后再创建和加载,即使数据库中并没有也先执行删除再创建。
e. Refresh data using inserts: 当跑过测试之后,数据会有所改变,应用此项刷新数据。
6. 点击Custom Creation SQL,勾选Enable Custom Creation SQL,在这SQL语句后面可以指定partition, table space等内容。
7. 点击TPC-C Transaction Mix -> User Load,这里用来设置虚拟用户数,默认1,4,8,10,表示4个循环,第一个是一个虚拟用户,依此类推,到第四个就是10个并发虚拟用户同时访问并操作数据库。
8. 点击Timing修改每个循环执行的时间,默认是4分钟。
9. 点击Job Setup 可以设置跑Job 的时间。
10. 设置了这么多之后(不设置就用默认值),点击Run Job跑跑看(注意,Create Objects for TPC-C的运行速度也跟数据库性能有关,此外,这一步支持Load from failure, 即如果loading的时候断网了,或表空间不够了,只要让它再跑,它会从失败的地方往后加数据,而不需要重头再来!)
11. Benchmark Factory 允许同时跑多个Job, 也可以连多个VM(此时VM作为agent)跑同一个Job,或者不同的Job在不同的VM跑。但是同一个Benchmark,像上面的TPC-C是同一种标准,最好不要同时用同一个连接跑,因为数据是共用的,可以同时在2个不同的连接上跑,以比较这两个连接的响应时间,TPS, tpmC等,接下来看一下Benchmark Factory生成的Report。 以下是Results和User Load部分截图
TPC-C Disclosure Report:
12. 在Compare Results页面比较结果
13. Run Reports 可导出,可比较,可迁移
User Load Statistics比较结果(选中2个Run Report,点击最右边Show Test Results)
今天的文章benchmark work_怎么理解benchmark分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/75052.html