2MUCH

BenchmarkSQL性能测试

2022-11-15


BenchmarkSQL性能测试

何为BenchmarkSQL

BenchmarkSQL是一款经典的开源数据库测试工具,其包含 TPCC 测试脚本,支持MySQL、Oracle 、EnterpriseDB、PostgreSQL以及SQL Server 等数据库的性能压力测试。模拟多种事务处理:新订单、支付操作、订单状态查询、发货、库存状态查询等,从而获得最终的压测值。

安装及压测大致步骤

总结在linux安装BenchmarkSQL工具,并使用的步骤。压测工具安装的主机是单独的,即不是放在待压测的数据库服务器上,前者通过jdbc连接到后者进行压测。

  1. 将BenchmarkSQL安装包传到主机上,并解压
  2. 额外需要安装ant和jdk
  3. 使用ant编译BenchmarkSQL
  4. 在待压测数据库中,创建压测用户
  5. 修改BenchmarkSQL配置文件props.xxx,将连接驱动、地址、用户配置正确。并设置所需的压测参数
  6. 执行压测数据导入命令 sh runDatabaseBuild.sh props.xxx
  7. 执行正式压测命令 ./runBenchmark.sh props.xxx。运行后可以看到实时的tpmC数值,运行结束后会显示平均的tpmC数值。
  8. 压测结果生成
  9. 执行删除压测数据命令 ./runDatabaseDestroy.sh props.xxx

props配置文件解析

可参考:

https://blog.csdn.net/weixin_47308871/article/details/123872130

http://t.zoukankan.com/DFX339-p-13071848.html

https://www.cnblogs.com/klb561/p/10513528.html

Warehouses 代表仓库数,框中的数字表示该表将存放的记录条数,仓库数的调整在测试中能够体现数据库所能支持的数据规模的能力。每个 Warehouse 的数据量,其大小约为 76823.04KB,可以有小量的变化,因为测试过程中将会插入或删除现有记录。可以根据每个Warehouse的数据量,计算测试过程中的数据总量。
计算公式为:数据总量(KB)≈ Warehouse个数*76823.04KB
以10个Warehouse的数据量为例计算其数据总量大小约为:768230.4KB

loadWorkers=10   //用于在数据库中初始化数据的加载进程数量,默认为4,实际使用过程中可以根据实际情况调整,加载速度会随worker数量的增加而有所提升

terminals=10  //终端数,即并发客户端数量,通常设置为CPU线程总数的2~6倍

runTxnsPerTerminal=10 //每个终端(terminal)运行的固定事务数量,例如:如果该值设置为10,意味着每个terminal运行10个事务,如果有32个终端,那整体运行320个事务后,测试结束。该参数配置为非0值时,下面的runMins参数必须设置为0
 
runMins=0    //要测试的整体时间,单位为分钟,如果runMins设置为60,那么测试持续1小时候结束。该值设置为非0值时,runTxnsPerTerminal参数必须设置为0。这两个参数不能同时设置为正整数,如果设置其中一个,另一个必须为0,主要区别是runMins定义时间长度来控制测试时间;runTxnsPerTerminal定义事务总数来控制时间。

测试指标

流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满 足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。

性价比(Price/Performance,简称Price/tpmc):即测试系统的整体价格与流量指标的比值,在获得相同的tpmC值的情况下,价格越低越好。

参考链接

https://zhuanlan.zhihu.com/p/396651167

https://www.modb.pro/db/137349

https://blog.csdn.net/ActionTech/article/details/123985424

https://www.cnblogs.com/klb561/p/10513528.html

https://wade-test.readthedocs.io/zh/latest/BenchmarkSQL5.0%20%E6%95%B0%E6%8D%AE%E5%BA%93%20TPC-C%20%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95%20-%20%E7%91%BE%E7%86%99%E7%9A%84%E5%8D%9A%E5%AE%A2%20JL%20Blog/