BenchmarkSQL性能测试
2022-11-15
BenchmarkSQL性能测试
何为BenchmarkSQL
BenchmarkSQL是一款经典的开源数据库测试工具,其包含 TPCC 测试脚本,支持MySQL、Oracle 、EnterpriseDB、PostgreSQL以及SQL Server 等数据库的性能压力测试。模拟多种事务处理:新订单、支付操作、订单状态查询、发货、库存状态查询等,从而获得最终的压测值。
安装及压测大致步骤
总结在linux安装BenchmarkSQL工具,并使用的步骤。压测工具安装的主机是单独的,即不是放在待压测的数据库服务器上,前者通过jdbc连接到后者进行压测。
- 将BenchmarkSQL安装包传到主机上,并解压
- 额外需要安装ant和jdk
- 使用ant编译BenchmarkSQL
- 在待压测数据库中,创建压测用户
- 修改BenchmarkSQL配置文件
props.xxx
,将连接驱动、地址、用户配置正确。并设置所需的压测参数 - 执行压测数据导入命令
sh runDatabaseBuild.sh props.xxx
- 执行正式压测命令
./runBenchmark.sh props.xxx
。运行后可以看到实时的tpmC数值,运行结束后会显示平均的tpmC数值。 - 压测结果生成
- 执行删除压测数据命令
./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)
流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满 足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。
- 性价比(Price/Performance,简称Price/tpmC)。
性价比(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