《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(1) https://developer.aliyun.com/article/1228682?groupCode=polardbforpg
上图列举了TPC-C的五种不同事务类型,包括New-Order下单、Payment支付、Delivery发货、Order-Status查询交易状况、Stock-Level查询库存状况。而最终衡量TPC-C性能结果使用tmpC,表示每分钟执行New-Order事务数,因为New-Order事务反映了下单场景中高频率且响应时间严格的读写混合事务的执行状况,是整个TPC-C workload的核心。Stock -Level库存查询状况中只包含一条查询,使用了子查询和join语句查询仓库的库存状况。
New-Order执行的步骤包括以下几步:
第一步,从warehouse 表和 customer 表中查询出信息。
第二步,更新对应的district地区信息。
第三步,向orders表和new_orders表插入一条新记录。
第四步,由于客户的一笔订单中会下单多件商品,需要针对购买的每一件商品更新stock表的库存信息,并向order_line表插入一行新记录。
第五步,提交事务。
从上述流程也可以体现出TPC-C和Sysbench的差别还在于TPC-C的事务遵循实际业务的规律与约束,而Sysbench则是纯随机的增删改查,不具备TPC-C测试的特性。因此,TPC-C具备数据完整性和一致性的概念,其规范包含了对数据完整性的约束。该约束与TPC-C的运行时间无关,比如orders表里持久化保存了所有下单记录,运行时间越来越长,orders表也会越来越大。从完整性约束中,可以推导出6条SQL(详情见后文),用于验证TPC-C的数据完整性。
TPC-H主要用于测评OLAP分析型查询的能力,而Sysbench和TPC-C则用于测评OLTP在线事务处理的能力。TPC-H包含了8张数据表、22条复杂的SQL查询,大多查询中还包含了多表join子查询、group-by等聚合操作。对于数据库的考验除了优化器的Join Reorder、join算法的选择,还有执行器、各种算子实现与多机并行执行等逻辑实现。
用户在使用上述3类测试工具的过程中会面临一系列问题,比如工具的编译、部署、执行结果如何收集统计、如何方便快捷地可视化呈现以及导入大规模数据应该如何选择合适的并发度等。
针对以上问题,我们推出了Benchmark Boot一站式压测平台,主打一站式、兼容性、易用性、可视化,一站式体现在内置了Sysbench、TPC-C、TPC-H三款精准测试工具,兼容性体现在可以在不同的系统平台安装部署,易用性则体现在整个压测流程均为白屏化操作,最终的测试结果也可以通过表格、折线图、柱状图等形式进行可视化展示。
相关安装使用文档点击此处查看网址。
Benchmark Boot的部署安装步骤非常简单,我们提供了一键安装命令,也提供了Docker镜像,省去了处理依赖安装问题的麻烦。使用Benchmark Boot要求压测机需要有不低于4C8G的配置,因为压测机规格太低容易成为性能瓶颈。同时,还需要一台有浏览器的前端机器。
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(3) https://developer.aliyun.com/article/1228676?groupCode=polardbforpg