DRDS实例性能评估分析

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
性能测试 PTS,5000VUM额度
简介: 一.         DRDS性能评估分析目标 通常我们在分布式数据库选项过程中会对DRDS进行性能评估分析,我认为主要包含以下3个目的: 1.评估DRDS性能,判断DRDS是否满足预期的性能需求

一.DRDS实例性能评估分析目标

通常我们在分布式数据库选项过程中会对DRDS实例进行性能评估分析,我认为主要包含以下3个目的:

1.评估DRDS性能,判断DRDS是否满足预期的性能需求

2.获取DRDS性能容量及各负载条件下性能表现,为容量规划提供参考依据

3.定位诊断DRDS性能瓶颈及原因并调整优化

 

二.性能评估分析主要性能指标

 

1.资源指标:

CPU 利用率:DRDS 服务节点的CPU资源平均利用率

网络输入流量:DRDS 服务节点的网络输入流量的总和

网络输出流量:DRDS 服务节点的网络输出流量的总和

连接数:应用到 DRDS 的连接总数

活跃线程数:DRDS 用来执行 SQL 的线程数

 

产品业务性能指标:

逻辑 QPS:DRDS 服务节点每秒处理的 SQL 语句数目的总和

物理 QPS:DRDS 服务节点每秒发送到 RDS 的 SQL 操作数总和

逻辑 RT:DRDS 对于每条 SQL 的平均响应时间

物理 RT:DRDS 发送到 RDS 的 SQL 的平均响应时间

 

压测工具性能指标:

每秒SQL数:每秒压测工具执行的SQL数量总和

平均响应时间:压测工具的每个请求从发生到接受响应的平均延迟时间

 

三.性能评估分析原理及方法

c110c537a96de3cfe7e701950b0ad4c76a0cd7f9

上面这图是比较典型的负载、资源、吞吐量、响应时间之间的趋势关系


图例说明:

1.轻负载区:随着负载的增加,响应时间变化不大,系统资源利用率和TPS几乎线性增长
2.重负载区:随着负载持续的增加,资源开始趋于饱和,TPS到达拐点

3.崩溃区:随着负载的进一步增加,这时候的系统资源主要消耗在资源竞争和调度上,TPS反而开始保持平稳状态或开始下降,请求队列里的请求开始膨胀,响应时间开始快速上升

 

结合这个原理,一些经过实践总结的简单公式也可以帮助我们分析,前提条件,模拟的虚拟并发用户数没有思考时间,上一个请求完成后马上请求下一个:

从压测工具端来看:

                  TPS或QPS=并发用户数  /  响应时间 

                  并发用户数 = TPS * 响应时间

                  响应时间 = 并发用户数 * TPS

 

DRDS端来看: 

                 QPS=活跃线程数  /  SQL逻辑时间 

                 活跃线程数= QPS * SQL逻辑时间

                 SQL逻辑时间=活跃线程数 *  QPS

 

 

四.性能评估压测工具使用

请查看地址:https://yq.aliyun.com/articles/133785

 

五.性能评估分析案例

 

1.压测环境


DRDS规格: 4C4G

压测表结构:一张用户表,按u_id进行分库

eba4b4f74e890af7301fc22430fc9be4380ebb7a

2.压测模型:

SQL类型

SQL语句

SQL比例

插入

INSERT INTO `marcotest`.`user_tbl`

(`u_name`,

`u_phone`,

`u_national`

)

VALUES

(?,?,'China');

20%

查询

select * from `marcotest`.`user_tbl` where u_id=?

70%

更新

update `marcotest`.`user_tbl` set u_phone=? where u_id=?

10%

 

 3.压测结果

通过Jmeter按压测模型来对DRDS发起压力,压测结果如下:

 

8并发:

a52427d073e6cdf3de03b113d5e78ea24cfe3c85

16并发:

50cb761a5ce5d89e6a38ca473408446c1ebe95a5

32并发:

80b4e9c8dd14a15e87486faba7909fd84bc6b66c

48并发:

b967d535a47bc241e6238f20bfcda7abb19ccd64

64并发:

b213b84ab17ec53c80da01926f04aa4f676ddaa8

80并发:

57e4f19f373cec99786f6d4425cf7e6dd843d9c7


 

DRDS CPU资源利用率:


1e1d42ab802aa8eb39f6757898ca01e3be621c72

 

整理后的结果数据:

并发用户数

平均响应时间(ms)

每秒SQL数(个)

CPU平均利用率(百分比)

8

4

1778

40%

16

4

3490

70%

32

5.5

5413

85%

48

7.5

6095

90%

64

9.5

6387

95%

80

12

6483

99%

 

4.性能分析:

3b6d7c8d4af4ce6080b77972eab171b061b7d45d

250b65330d68d6cf3462f222c52abcfbe7668432

      在当前测试环境下,按压测模型进行压测,从结果数据结合分析方法原理来看,当并发超过32后以后QPS增长缓慢,并且CPU利用率趋于饱和,可以判断这个时候资源基本快达到瓶颈,导致吞吐量上涨受限。另外我们可以看到资源没有瓶颈的时候,响应时间基本保持平缓趋势,一旦资源饱和时,上涨趋势比较明显。

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
6月前
|
关系型数据库 中间件 数据库连接
drds读写分离与只读实例
drds读写分离与只读实例
118 3
|
6月前
|
存储 SQL 关系型数据库
PolarDB-x 比mysql查询性能怎么样?速度快吗
PolarDB-x 比mysql查询性能怎么样?速度快吗
301 0
|
监控 关系型数据库 Shell
用shell脚本写一个监控drds实例的脚本
用shell脚本写一个监控drds实例的脚本
81 1
|
JSON 监控 关系型数据库
用python写一个监控drds实例的脚本
用python写一个监控drds实例的脚本
84 1
|
存储 SQL 缓存
PolarDB-X 全局Binlog解读之性能篇(下)
本篇为《PolarDB-X 全局Binlog解读之性能篇(上)》的姊妹篇,将从技术原理角度聊一聊PolarDB-X CDC的一些性能优化手段。
PolarDB-X 全局Binlog解读之性能篇(下)
|
SQL 弹性计算 Java
PolarDB-X 全局Binlog解读之性能篇(上)
本篇来介绍一下PolarDB-X全局binlog在性能方面的一些设计和思考,先通过几个实际的测试案例来展示全局binlog的性能情况,然后结合这些案例来深入讲解全局binlog关于优化的故事。
PolarDB-X 全局Binlog解读之性能篇(上)
|
NoSQL 固态存储 关系型数据库
TiDB、OceanBase、PolarDB-X、CockroachDB二级索引写入性能测评
二级索引是关系型数据库相较于NoSQL数据库的一个关键差异。二级索引必须是强一致的,因此索引的写入需要与主键的写入放在一个事务当中,事务的性能是二级索引性能的基础。本次测试将重点关注不同分布式数据库的索引性能,特别关注业内全局索引的性能与MySQL索引的性能差异。
TiDB、OceanBase、PolarDB-X、CockroachDB二级索引写入性能测评
|
存储 SQL Kubernetes
PolarDB-X 如何做分布式数据库热点分析
PolarDB-X 是一款计算存储分离的云原生分布式数据库,在PolarDB-X 2.0的AUTO模式下,数据库会按照表的主键自动Hash分区,将数据均匀的分布到各个数据节点中,最理想的情况是各分区间数据和流量都是均衡的,能充分发挥出多节点的分布式处理能力。为了达到最理想的效果,就要求数据库尽量避免出现热点分区,包括流量的热点和数据量的热点。避免热点的出现,首先就需要快速便捷地发现热点分区,从而能进行针对性的处理,因此快速准确地找出热点分区就成为分布式数据库所需的一项重要能力。
549 1
|
SQL 并行计算 关系型数据库
PolarDB-X云数据库与MySql数据库的应用与分析
PolarDB-X 2.0 从 5.4.14 版本开始,推出了新类型的 New Sequence,并将其与 AUTO 模式库中的表 AUTO_INCREMENT 属性相关联,达成了与 MySQL AUTO_INCREMENT 一致的功能和性能体验。
|
存储 Cloud Native 固态存储
快速入门—PolarDB-X首次使用流程—创建实例
本文主要介绍如何创建PolarDB-X实例
229 0