PolarDB-X 进行 TP 负载测试(一)| 学习笔记

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 快速学习 PolarDB-X 进行 TP 负载测试。

开发者学堂课程【PolarDB-X 开源分布式数据库进阶课程  :PolarDB-X 进行 TP 负载测试(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1202/detail/18329


PolarDB-X 进行 TP 负载测试

 

内容介绍:

一、PolarDB-X 简介

二、数据库基准测试

三、Bench Mark Boot x 性能介绍

四、监控和性能指标

 

一、PolarDB-X 简介

开始前简单介绍一下 PolarDB-X 和我们这个系列的课程对比简介。PolarDB-X 架构,它采用与存储计算分离的架构进行设计,系统由四个核心组件组成,首先 jms 原数据服务,负责维护系统原信息,提供了 tso 全局售时服务。存储节点 dn,他负责数据持久化,无状态的计算节点 cn。负责数据分布式路由计算调度,分布式事务协调等。日志节点 cdc 则提供完全兼容 macical bin log 的订阅能力,在我们上一次的训练营中,主要是基于 dx 2.1的开源版来展开介绍。

image.png

元数指服务(ElcbaMeti

提供全局授时服务(TS0)

维护 Tale/Schena, Statistic等

维护账号、权限等安全信息

春储节点(Bste ode. D

·基于多数派 Panos 共识协议的高可靠存储+管理分布式 WCC 事共的可见书判粉

计算节点(Compute Mede, CW)

基于无状态的5GL 引擎提供分布式路由和计算处理分布式事务的2PC 协调、全局索引维护等

日本节点(Dharge Duta Captura.COC)

提供董容 My8QL 生态的 binlag 协议和数据格式提供兼容 My84LRmplication 主从复制的交互

image.png

这一次则是围绕新推出的2.2版本来介绍我们的课程资源不仅包括了 PolarDB-X 各个组件的源码,还有产品网站,支付文章,还有要进行动手操作来进行验测试,接下来进入今天的主题。再讲 polarDB-x 负载测试之前,先弄清楚数据库基准测试是什么。

1.国产化适配

适配国产芯片,ARM 架构

适配国产操作系统,kylin/UOS 等

2.性价比优化

更小的起步规格,2Core8G 可部署

全方位的性能优化,60%的性能提升

3.云原生 HTAP

资源隔离,基于全局一致性的读写分50%的性能提升

RO 节点默认开启 MPP 并行计算

4.MySQL 生态兼容性

兼容 MySQL 存储过程、UDF 函数

兼容 MySQL Auto Increment 行为

5.数据库安全

全量 SQL 审计

Flashback Query

6.分布式数据管理分区表管理能力

Locality 亲和性调度

冷执费 南调度

7.开源配套工具

polardbx-backup 备份工具

benchmark-boot 压测工具

batch-tool 数据导入导出工具

8.轻量化部署和运维

强一致备份恢复

参数模板管理

容灾部署(同城三机房、两地三中心)

image.png


二、数据库基准测试

常用的测试工具有哪些?简单的理解数据库基准测试就是对数据库进行定量的压力测试,以此来评估数据库的性能,也就是说它可以客观全面的反映数据库系统之间的性能差距。常见的基准测试工具有 bench tc 组织的各类数据集,熟知的包括 tcp tpcc tcds 档,而针对非关系型数据库或者说像大数据的场景也有一系列专用的测试机,下面将围绕今天的主题给大家一一介绍我们这个系列课程会用到的测试工具。

工具类介绍:

系统性能指标

CPU

内存

文件 I/O

数据库负载场景

点查

只读

只写

读写混合

2.建表语句

CREATE TABLE‘sbtest1' (

id'int(11) NOT NULL,

k~int(11) NOT NULL DEFAULT '0'

char(120) NOTNULL DEFAULT

pad char(60) NOTNULL DEFAULT

PRIMARY KEY (id`),

KEY'K_1° (Ck*)

)ENGINE =InnoDB DEFAULT CHARSET二utf8mb4PARTITION BY KEY(id`);

image.png

首先 SYS bench,它是一款开源的多线程性能测试工具,不仅可以测试系统自身的性能指标,还内置了各种数据库负载的场景,从而让测试人员能够快速了解数据库系统的性能情况。像系统的性能指标就有 CPU,内存,文件 io,故事锁等,而数据库负载场景则包括检查 select,只读 read only,只写 right only 读写混合 rewrite 索引更新 update index,非索引更新 update nine index,而这些场景都是针对一张或多张名为 sb test 表发起的并发操作在右边,可以看到这张表的建表方式也很简单,包括 int 类型的主键 ID。在2级索引的类型字段 k 和两个恰类型的字段,所以我们可以看出 SYS bench 他不模拟真实的业务场景,而是专门啊在每个场景单侧专项的性能,那么这些场景里面具体做了些什么呢?这里列举了其中三个场景:

image.png

点查

•SELECT c FROM sbtest%u WHERE id=?

更新索引

• UPDATE sbtest%u SET k=k+1 WHERE id=?

只读

•SELECT c FROM sbtest%u WHERE id=?

• SELECT c FROM sbtest%u WHERE id BETWEEN ? AND?

• SELECT SUM(k) FROM sbtest%u WHERE id BETWEEN ? AND?

• SELECT SUM(k) FROM sbtest%u WHERE id BETWEEN ? AND ? GROUP BY c SELECT c FROM sbtest%u WHERE id BETWEEN ? AND ? ORDER BY C

SELECT DISTINCT c FROM sbtest%u WHERE id BETWEEN ? AND ? ORDER BY c

点查就是根据主键 ID 去查询一条记录,更新索引则是根据主键 ID 去对带索引的字段k来进行一个自增操作。而如果用户的业务中有很多 agg 之类的查询的话,就可以跑只读场景。这些 circle 在这里也可以看得到。还有没没列举出来的读写场景,那么他就既有检查,聚合查询,也有更新,插入,删除等 dml 语句。

image.png

下一个基准测试工具则是更多人所知道的 tpcc 测试,他模拟了仓库订单管理业务场景,尝试从真实应用中抽象出数据库模式和工作负载,从左边的数据库 er 图就可以看出,tpcc 测试集一共包含了这几张表,同时表与表之间的数据量存在了一定的比例关系,比如 item 左下角的 item 商品表就是固定的10万条记录固定的10万条记录,他每个仓库则对应了十个不同的地区,这里也可以结合右边的这个示意图来看,而每个地区又有3000位客户,每个客户又会下多笔订单,所以相比 bench 一个很大的区别就是tpcc模拟了真实的业务场景,这里列举了 tpcc 五种不同的事物类型,包括 new order 下单 payment,支付 delivery 发货,order status 查询交易状况 Stock level查询库存状况,而最终衡量 tpcc 的性能结果使用的就是 tpmc,它是每分钟执行 new order 事务数,这也是因为 new order 反映了下单场景中高频率且响应时间严格的读写混合事物的执行状况,它是整个 tpcc workload 的核心,像这个 stock level,库存查询状况中它就只包含了一条查询,使用了子查询和 join 的语句来查询仓库的库存状况,而这里 new order 执行的步骤就包括了以下列举的几步,首先从 vivo 表和 customer 表中查询出对应信息。

image.png

第二步,更新对应表的 distrinct 地区信息,第四步,像 orders 表和 new orders 表插入一条新记录。又由于客户的一笔订单中会下单多件商品,那么对于购买的每一件商品会更新 stock 表的库存信息,并向 line 表插入一行新记录,最后提交事务所,以从这里也可以体现出 tpcc 和 SYS bench 不同的一点,他还在于 PC cc 的事务是遵循实际的业务规律与约束。而 SYS bench 则是纯随机的增删改查,它不具备 PpcC 的这个特性,它是具备数据完整性和一致性的概念,这也是因为 tb cc 实现的一个实现规范中就包含了对数据完整性的约束,这个约束与 tb cc 运行时间无关,比如说 orders 表持久化保存了所有的下单记录,随着发行时间越来越长,表也会越来越大,完整性约束它是与 tptc 运行时长是无关的,而从这些完整性约束中,它可以推导出来六条 circle,用来验证 tpcc 的数据完整性,这一点在后面的实际演示中也会提到。

image.png

最后要介绍的一个测试题则是 tpcs 参与前面介绍的两个基准测试不同与 SYS bench。主要是用于测评分析型查询的能力 SYS bench,而 tp cc 则是测评 op 在线输入处理的能力,这里可以看得到,包含了八张数据表,22条复杂的SQL 查询,大多数查询中还包含了多表 join 子查询,goodbye 等聚合操作。所以他对于数据库的考验,除了优化器 drawing rejoin 算法的选择,还有执行器各种算子实现与多机并行等的实现多机并行执行的实现,但是在这节课中不会做过多的介绍,相信从事数据库行业工作的人肯定已经听说过或者用过上述三类测试工具,但是在实际使用的过程中也会面临一系列的问题,比如这些工具的编译部署,执行结果怎么收集统计或者方便快捷的可视化呈现以及导入大规模数据应该如何选择合适的并发度等。

那么针对以上问题,我们就推出了 Benchmark boots 一站式的压测平台。

相关实践学习
Polardb-x 弹性伸缩实验
本实验主要介绍如何对PolarDB-X进行手动收缩扩容,了解PolarDB-X 中各个节点的含义,以及如何对不同配置的PolarDB-x 进行压测。
相关文章
|
29天前
|
Prometheus 负载均衡 Cloud Native
OceanBase数据库常见问题之默认情况下流量分布还是集中在一个zone上如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
1月前
|
SQL 关系型数据库 分布式数据库
PolarDB常见问题之PolarDB的CPU跑高如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
1月前
|
JSON 关系型数据库 分布式数据库
PolarDB常见问题之PolarDB8.0.1使用冷热混合分区失败如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
7月前
|
SQL NoSQL Cloud Native
数据库的类型(TP、AP、NoSQL、工具)(二)
数据库的类型(TP、AP、NoSQL、工具)(二)
752 0
|
7月前
|
SQL 存储 NoSQL
数据库的类型(TP、AP、NoSQL、工具)(一)
数据库的类型(TP、AP、NoSQL、工具)(一)
1032 0
|
9月前
|
弹性计算 前端开发 关系型数据库
实践教程之使用PolarDB-X进行TP负载测试
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您如何使用PolarDB-X进行TP负载测试。
|
11月前
|
测试技术 数据库连接 分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(6)
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(6)
244 0
|
11月前
|
关系型数据库 大数据 测试技术
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(1)
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(1)
333 0
|
11月前
|
弹性计算 负载均衡 分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(5)
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(5)
207 0
|
11月前
|
SQL 数据可视化 算法
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(2)
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(2)
225 0