drds连接池

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

DRDS连接池
drds是一款基于阿里云rds的数据库中间件,总结一下关于drds连接池的理解
image

从DRDS来看,有两个连接池:
*1、 应用到DRDS的连接池
2、 DRDS到后端RDS的连接池*

应用到DRDS的连接池
目的:提高应用性能,减轻数据库负载
作用:
1、资源复用:连接可以重复利用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,同时增进了系统的平稳性。

2、提高系统响应效率:连接的初始化工作完成后,所有请求可以直接利用现有连接,避免了连接初始化和释放的开销,提高了系统的响应效率。

3、避免连接泄漏:连接池可根据预设的回收策略,强制回收连接,从而避免了连接资源泄漏

某专有云采用的是德鲁伊连接池,这也是官网推荐的连接池类型。配置信息如下图:
image

drds之前出现过节点连接数不均衡问题,某几个节点的压力过大,导致docker连接异常。
解决过程:
1、修改应用到drds的探活语句,之前探活语句查看执行计划发现是打到了drds下面rds的 0 号库上,导致drds的0号库qps压力高。现在修改语句只探活到drds层面,这个主要是针对0号库压力高的问题。
2、升级德鲁伊版本,并且设置固定时间关闭连接的参数phyTimeoutMillis升级后观察连接数还是比较平均的。当然drds也有自己的slb负载均衡,通过相应的算法来将应用连接数分配到各个docker节点上。

DRDS到后端RDS的连接池
DRDS到后端的连接池是指:从每个DRDS节点到后端RDS每个分库的连接池。这个连接池是在drds的docker节点上的。
DRDS后端连接池的大小设置是与后端RDS的最大连接数相关的,参考最大连接处设置公式如下:

最大连接数=RDS实例最大连接数/DRDS节点数/RDS实例分库数(每个RDS上的物理分库数)

改值只是一个参考值

如何修改该值:
1、 通过drds manager中实用功能可以自定义该值,注意appname是show datasources中的schema字段,也可以通过drdsmanager查询该值。
2、 通过drds console进行调整实例连接池信息,会根据后端RDS实例进行调整,并且会reload从drd到rds的连接,这是自动调整的,无法自定义设置。

相关问题:
客户在进行压测的过程导致drds的0号库连接池被打满,具体报错理解为connection $RDS_0号库 full。想要咨询并且修改drds到后端rds的连接数。

针对该问题,首先建议客户需要优化对应的慢SQL,并且0号库rds的实例连接数相比其他的数据库连接数配置要低,连接池更容易因为慢sql而被打满,或者说有没有一些大事务、长事务等占用连接不释放等。

应用到drds和drds到rds的两段连接数是异步的,没有绑定关系的。前端到drds的连接数,drds首先接住这些连接,然后通过自己的转发机制,异步转发到节点上去执行,每个节点都会有一个连接池到rds上分库的连接,这样也不能保证是哪个节点的连接池被打满。这也跟业务相关,假如压测中很多场景是多访问0号库的业务,也会导致0号库出现这个问题,这些都是要去考虑的。

实例连接数是可以增加的,但是不能一味的增加连接数,首先应该从问题根源上确认是否有导致出现连接数打满的问题,需要去优化的要做好优化,最后考虑去升级规格。避免出现一直升级连接数还是被打满的问题。

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
3月前
|
SQL 监控 关系型数据库
drds学习
【8月更文挑战第6天】
101 1
|
SQL 关系型数据库 分布式数据库
drds和polardb的sql语句分别有哪些
drds和polardb的sql语句分别有哪些
152 1
|
存储 SQL 关系型数据库
PolarDB-X 与 DRDS 有什么区别?2
PolarDB-X 与 DRDS 有什么区别?2
113 1
|
6月前
|
SQL 运维 监控
drds相关的问题
drds相关的问题
72 5
|
6月前
|
关系型数据库 中间件 数据库连接
drds读写分离与只读实例
drds读写分离与只读实例
130 3
|
6月前
|
SQL 监控 关系型数据库
drds常见问题
drds常见问题
218 2
|
SQL 关系型数据库 MySQL
PolarDB-X 与 DRDS 有什么区别?1
PolarDB-X 与 DRDS 有什么区别?1
156 1
|
监控 关系型数据库 数据库
RDS PostgreSQL内置连接池PgBouncer
2023年7月,阿里云RDS PostgreSQL支持内置数据库连接池PgBouncer,本篇文章从以下角度探讨PgBouncer:1. PgBouncer是什么;2. 应用场景 ;3. 性能对比;4. 如何使用;5. 总结
|
6月前
|
SQL 存储 关系型数据库
PolarDB-X 与 DRDS 的区别
PolarDB-X 2.0(以下简称PolarDB-X)与DRDS(DRDS也称为PolarDB-X 1.0)都是阿里云上的分布式数据库产品。看起来她们都是Share-Nothing的架构,用水平扩展来解决单机数据库瓶颈问题。很多同学因此会有疑惑,她们俩到底有什么样的区别?
277 0
PolarDB-X 与 DRDS 的区别
|
SQL 运维 关系型数据库
分布式关系型数据库服务DRDS——DRDS 主要解决的问题和DRDS的主要功能
分布式关系型数据库服务DRDS——DRDS 主要解决的问题和DRDS的主要功能,
771 0
分布式关系型数据库服务DRDS——DRDS 主要解决的问题和DRDS的主要功能
下一篇
无影云桌面