1.BenchmarkSQL 支持 TiDB 驱动以及 tidb-loadbalance
2.BenchmarkSQL 对 MySQL 测试时请注意隔离级别!码分
3.泛微网络实践:TPCC测试和SQL执行计划
4.benchmarksql5.0 怎么生成落地文件
5.如何看待BenchmarkSQL性能测试?效果如何呢?
6.SmartX 超融合信创平台如何利用 Boost 技术提升达梦数据库性能近 100%
BenchmarkSQL 支持 TiDB 驱动以及 tidb-loadbalance
BenchmarkSQL 对 TiDB 进行 TPC-C 测试揭示了 TiDB 作为兼容 MySQL 协议的码分分布式关系型数据库的性能优势。TiDB 允许用户使用 MySQL 的码分驱动和连接方式,同时在语法上与 MySQL 保持一致,码分使其在进行联机交易处理(OLTP)测试时,码分成为了一种强有力的码分太空人表源码选择。
在早期版本中,码分由于 TiDB 计算节点并未支持负载均衡,码分因此 TiDB 集群需要配合负载均衡工具(如 HAProxy、码分LVS 或 F5)使用。码分PingCAP 官方在 TiDB 的码分 6.1 版本之后,为 Java 程序推出了 TiDB 自带的码分驱动 TiDB-JDBC,以及 Java 客户端负载均衡工具 tidb-loadbalance,码分旨在解决这一问题。码分
为了使 BenchmarkSQL 支持 TiDB-JDBC 驱动和 tidb-loadbalance 应用端负载均衡,码分进而能够在对 TiDB 进行 TPC-C 测试时无需额外部署负载均衡软件来支持连接分发。修改了 BenchmarkSQL 代码以适配 TiDB。
具体包括在 src/client/jTPCC.java 文件中增加 TiDB 数据库类型定义,以及在 jTPCCConfig.java 文件中增加 TiDB 数据库类型。在 SQL 子查询中增加 AS L 别名,以避免语法错误。同时,在 run/funcs.sh 文件中添加 TiDB 驱动拷贝操作,并在 run/props.tidb 配置文件中新增 TiDB-JDBC 驱动以及 tidb-loadbalance jar 包。
在实际测试中,压缩算法 源码只需用 { TiDB-IP}:{ TiDB-PORT} 填写 TiDB 集群任意一个 TiDB Server 计算节点的 IP 地址与端口,程序启动后 tidb-loadbalance 会自动发现集群内部所有计算节点并进行连接分发。
TPCC 测试对于分布式数据库测试意义重大,尤其是在近几年分布式数据库热度持续上升的背景下。OceanBase 和腾讯的 TPCC 打榜现象促使数据库厂商在 TPCC 测试上进行专门优化,以提升 POC(Proof of Concept)节点的测试成绩。然而,实际业务场景中发现,某些在 POC 时 TPCC 测试成绩优异的产品,对于真实业务性能提升有限,甚至可能不如未进行分布式改造前的性能。
TPCC 测试场景模拟商品销售模型,包含新订单生成、订单付款、最近订单查询、配送和库存缺货状态分析等。测试案例设计时,明确其目的和合理性至关重要。在设计数据库选型测试案例时,TPCC 测试仅建议作为参考,而不作为选型依据。更准确的测试方法是通过 JMeter 进行业务接口压测,模拟不同业务压力。
BenchmarkSQL 对 MySQL 测试时请注意隔离级别!centos源码lnmp
BenchmarkSQL是一款经典的开源数据库测试工具,具备TPC-C测试脚本,支持Oracle、MySQL、PostgreSQL、SQL Server以及部分国产数据库的基准测试。最近,作者在使用该工具对MySQL进行性能测试时,遇到卡住现象,即TPM TOTAL值不再变化,但通过top命令观察到MySQL压力依然很大。经过分析,发现MySQL一直在重复执行删除和查询同一记录的SQL操作,且GTID未发生变化。为了解决问题,作者深入研究了BenchmarkSQL源代码,发现原因是MySQL配置的隔离级别为REPEATABLE-READ,导致出现死循环。将隔离级别调整为READ-COMMITTED后,问题得以解决。
本文通过实验证明了隔离级别对数据库性能测试结果的影响,对于使用BenchmarkSQL进行性能测试的用户具有参考价值。更多技术文章可访问:opensource.actionsky.com。
泛微网络实践:TPCC测试和SQL执行计划
作者简介:王芝超,android搜索源码数据库DBA。
TPC-C测试
(必选)使用BenmarkSQL运行TPC-C,并发数不用很高,5~并发即可(根据机器资源)。
(必选)分析TPC-C TOP SQL并查看3条SQL的解析执行计划和实际执行计划。
使用BenchmarkSQL运行TPC-C测试
benchmarksql开源项目是对TPC-C标准的实现。下面使用BenchmarkSQL运行TPC-C进行5~并发场景测试。
提前登录租户创建数据库和用户
1.1 安装benchmarksql
下载软件后解压即可
1.2 TPCC数据初始化
sql文件在benchmarksql-5.0-master/run/sql.oceanbase中,看了一些建表语句,使用了varchar2类型,ob为mysql模式,需要修改:
加载数据,由于是个人笔记本电脑,仓库数选的小一些
创建表的相关索引,提高执行效率。
1.3 TPCC测试
当数据初始化完后,数据和表的索引都以完成后,即可开始TPCC的测试,运行如下命令开始测试。
测试的详细信息在my_result_--_/data/result.csv文件中。
2 分析TOPSQL的执行计划
分析TPC-C TOP SQL,并查看3条SQL的解析执行计划和实际执行计划
执行过的SQL在obproxy_digest.log中有记录,可查看文件进行查找sql。
2.1 查看执行计划
使用explain命令查看理论的java获取源码执行计划
2.2 查看实际执行计划
通过视图GV$sql_audit来查看实际的SQL执行计划。
3 避坑指南
加载测试数据报超时,需要调整参数
————————————————
benchmarksql5.0 怎么生成落地文件
说到benchmaeksql,其实很多人并不陌生
因为它确实在对数据库的测试过程中起到了一定的作用。现在很多数据库用户也会将这个测试的结果作为衡量数据库好坏的一个因素之一。
但是我相信,很多人在使用的过程中,也应该发现了benchmarksql的一些不足之处。
下面我将说一下个人的愚见,也许是自己操作过程中的问题,毕竟才踏入数据库开发的行列,还是一个菜鸟,在不停的学习中。
首先,个人呢觉得在数据加载这一块,做的不是很好,查看了一下load那一块的代码,发现对所有的数据都是insert进去的,这样的效率应该是相对于copy来说是慢很多的。
其次在最后进行数据测试的时候,如果设置为1个terminals的时候,可能看不出什么问题。但是当设置较大的时候,例如测试个warehouse,根据测试规则,个warehouse的时候,最多可以有个terminals,这个时候,就会发现经常回出现键值唯一的错误,出现这个错误应该是正常的,但是不应该在这个错误出现之后,报出java堆栈的错误,这个应该是一个bug吧
并且我查看了源代码之后,也发现了一个问题,就是在事物提交更新的那个模块,并没有做到一个sql语句进行一次事物提交,而是在两个或者更多的sql处理之后才进行提交操作。这个在做数据更新的时候可能会出错。具体网上应该有很多这样的文章,如果第一个错误,第二个提交事务的时候会报错,这个觉得应该需要修正一下。
另外在配置方面,在网上查了很久都没有说一个具体的配置之间的关联和最有配置。
这个目前根据自身的经验,我觉得和机子的配置有关,不同的配置,我们可以设置共享内存和存储方面
在每分钟执行事务数的那个配置,我们可以根据配置慢慢调整。我的做法是:设定好运行分钟,1个terminals,个warehouse,然后从开始,每次上涨,然后运行完之后看吞吐量,如果到达一个值之后,有所降低,然后在每次减或,直到找到最优值。
然后每分钟执行事务数设置找到的最优值,在调试terminals。从开始,往回每次减,按照找limitTxnsPerMin的方法找出最优值即可。
当然这种方式找出的值,对不同主机和不同配置都是有所不同的。同时需要注意的是当terminals越大的时候,你会发现在执行的过程中,出现违反键值唯一约束的问题也就越多。不过我认为这个是正常的。
如何看待BenchmarkSQL性能测试?效果如何呢?
实验环境
TPC-C标准测试包含五种模拟事务处理,分别针对不同业务场景设计。包括新订单(New-Order)、支付操作(Payment)、订单状态查询(Order-Status)、发货(Delivery)和库存状态查询(Stock-Level)等。每种事务在设计上注重响应速度和特定业务操作频率,以全面考察数据库性能。
TPC-C测试评估结果主要通过流量指标(Throughput, tpmC)和性价比(Price/Performance)两个指标衡量。流量指标反映系统处理事务的能力,性价比指标则综合考虑成本与性能表现。
作为数据库用户,执行TPC-C测试的目的是了解数据库在不同业务负载下的性能表现。通过测试,可直观评估数据库处理能力、响应速度以及在特定工作负载下的稳定性。
为了准备和配置TPC-C测试环境,需下载并安装BenchmarkSQL、htop、R语言等软件。根据官方文档,完成主机配置,以确保测试环境的正确搭建。
参考:贾军锋,openGauss
SmartX 超融合信创平台如何利用 Boost 技术提升达梦数据库性能近 %
在关键行业的信创转型中,用户对于信创生态构成方案的性能和特性了解不足,对核心业务的信创转型存在疑问。SmartX 方案中心围绕达梦 DM8 数据库在 SmartX 超融合信创平台(基于鲲鹏芯片)上进行性能测试,并通过 Boost 加速技术进行调优。结果表明,结合数据库参数调整,在 Boost 模式下,SmartX 超融合信创平台支撑的达梦数据库性能提升了近 %。
本次测试使用 BenchmarkSQL 基于 TPC-C 基准执行,对比了达梦 DM8 在裸金属服务器(使用 SATA SSD 和 NVMe SSD)、未优化的 SmartX 超融合平台和优化后的超融合平台的性能。Boost 模式优化包括 BIOS 参数、RDMA 网络、虚拟机设置、操作系统参数和数据库相关调整。优化后,数据库性能显著提升,达到裸金属服务器的 1. 倍,接近 SATA SSD 的性能。
在测试中,SmartX 超融合信创云基础设施的核心软件 SMTX OS 的 Boost 模式通过内存共享技术提升虚拟机性能,降低 I/O 访问延迟。Boost 模式与 RDMA 网络优化结合,最大化提升存储性能。虚拟机配置优化包括 CPU 独占功能、虚拟磁盘存储策略调整和操作系统参数优化,确保网络性能利用鲲鹏 CPU 多核优势。
测试还展示了数据库的性能提升,包括 NUMA Group 对性能的影响、虚拟机资源配置、TPC-C 测试集应用、性能瓶颈分析和数据库参数优化。优化后的 SmartX 超融合平台在达梦数据库性能测试中的表现明显优于未优化状态。
SmartX 超融合平台凭借其 I/O 性能和针对性优化,显著提升了达梦数据库 TPC-C 性能测试表现。为深入了解 SmartX 超融合在数据库场景下的性能表现,可阅读相关资料或下载电子书。SmartX 通过技术创新提升基础架构性能与可靠性,为用户提供高性能与简单敏捷的数据库解决方案。
SmartX 超融合平台通过 Boost 技术,实现了达梦数据库性能的大幅提升,为信创转型提供了有力支持。用户在面对核心业务的信创转型时,可以参考 SmartX 方案中心的经验,利用 Boost 技术优化数据库性能,实现更高的效率和稳定性。