您的当前位置:首页>新品 > 正文

世界看点:数据库性能测试工具——BenchmarkFactory

来源:CSDN 时间:2023-04-04 14:19:53

压测三步曲:准备数据--运行压测---清除压测数据


(资料图片仅供参考)

公式理解:

SQL调优公式T=S/V

QPS(TPS)= 并发数/平均响应时间

并发数 = QPS(TPS) * 平均响应时间

注:Benchmark Factory 测试版User Load 并发最高支持100。(用来学习和理解概念还是很好的)

Benchmark Factory 使用 简介 一. 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组织(TPC-Homepage)提出的性能测试标准和规范实现的测试集合。这些测试是在数据库中创建固定的表,然后生成相应的数据(Create Objects for ###),之后跑一组固定的事务(但是事务个数,权重可修改)测试(如TPC-C的是TPC-C Transaction Mix),跑完可以运行一个删除对象的测试删除这些数据(Delete Objects for ###)。我们可以根据需要更改生成数据的大小,数据存放的表空间,执行事务时的用户数。 那哪些场景会用到这种测试呢?笔者以为有以下几种情境:当新装一个数据库需要对它进行性能调优,在事务数确定的情况下是否可达到预期的并发用户数;当需要更新数据库版本时,对新旧版本的性能进行比较;当相同的数据库要迁移到新的软硬件环境上时,对它的性能进行比较;当开发出的数据库产品对数据库的操作有改动时,测试它对数据库性能的影响;在数据库性能比较稳定之后,进行性能的监测等等。 下面我们创建 一个TPC-C Job实例: 首先创建一个connection: (注意创建任何一个Job 都需要先创建Cconnection)

当连接创建好之后,我们点击主菜单上的New按钮打开New Job Wizard向导:

点击Add Workload,选择Industry Standard Benchmark Test –> TPC-C

点击Add Test,我们的 Job就创建好了(点击Run Job就可以跑了)。此页面所有的蓝色链接都是可以点开编辑的,下面我们就再了解下这些链接的页面:

\4. 下面我们就点击Scale:1并把Scale大小改成10,Benchmark Size就发生了改变。

然后我们点击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: 当跑过测试之后,数据会有所改变,应用此项刷新数据。

点击Custom Creation SQL,勾选Enable Custom Creation SQL,在这SQL语句后面可以指定partition, table space等内容。

点击TPC-C Transaction Mix -> User Load,这里用来设置虚拟用户数,默认1,4,8,10,表示4个循环,第一个是一个虚拟用户,依此类推,到第四个就是10个并发虚拟用户同时访问并操作数据库。

点击Timing修改每个循环执行的时间,默认是4分钟。

点击Job Setup 可以设置跑Job 的时间。

设置了这么多之后(不设置就用默认值),点击Run Job跑跑看(注意,Create Objects for TPC-C的运行速度也跟数据库性能有关,此外,这一步支持Load from failure, 即如果loading的时候断网了,或表空间不够了,只要让它再跑,它会从失败的地方往后加数据,而不需要重头再来!)

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:

在Compare Results页面比较结果

Run Reports 可导出,可比较,可迁移

标签:

最新新闻:

新闻放送
Top