选型建议

最近更新时间:2024-10-17 09:52:21

我的收藏
TDSQL PostgreSQL 版包含两种架构,分别为分布式和集中式,具体请参考 数据库架构

架构解析

TDSQL PostgreSQL 版分布式架构实例采用无共享 share nothing 架构。数据库实例分为三种节点:
Coordinator:协调节点(简称 CN),对外提供接口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图。在功能上 CN 只存储系统的全局元数据,并不存储实际的业务数据。
Datanode:数据节点(简称 DN),处理存储本节点相关的元数据,每个节点还存储业务数据的分片。在功能上,DN 负责完成执行协调节点分发的执行请求。
GTM:全局事务管理器(Global Transaction Manager,GTM),负责管理集群事务信息,同时管理集群的全局对象,如序列等。

集中式、分布式架构选型建议

1. 选型原则:集中式能承载的情况下,尽量选择集中式。
2. 选择分布式数据库的一般标准:
指标
阈值
说明
数据量大
热数据 > 2TB
全量数据 > 5TB
1、热数据(排除日志表、历史流水表)超过2TB。
2、全量数据量超过5TB,从运维角度建议采用分布式数据库,避免单节点数据量过大,备份、运维时间太长的问题。
活跃会话较高
最大值 > 300
集中式的并发处理能力上限受物理服务器 CPU 约束。
负载的复杂度
单个服务器资源不足
例如:高峰时段事务频率:最大值 > 1500,CPU 使用率 > 70%
适合使用分布式数据库的场景
1. 数据库已经做了分库分表。
2. 数据适合分片,且数据分布均衡。
3. 业务适合分布式改造,业务的逻辑不存在大量跨 DN 的分布式操作:分布式事务、分布式查询。
3. 选择分布式数据库的其他标准:
指标
阈值
说明
有可扩展性要求
每年有大量数据增长,或者不能预期增长情况时,可以考虑使用分布式架构。
有相对较高的秒杀场景
定期有秒杀场景,即有大量并发用户访问数据库的情况,可以考虑使用分布式架构。

分布式架构配置建议

各节点类型建议维度

CN:承接连接创建,以创建连接需要的内存为参考,建议最低需要2组 CN。
DN:承接 SQL 计算,关系到 SQL 处理效率,以服务器 CPU 单核处理能力为参考。不能少于 CN 的总内存,内存越大,缓存的数据越多,效率越高。
GTM:跟数据库的 TPS(Transactions Per Second)相关,CPU 使用率非常高,建议 24CPU 以上。私有化部署时,建议单台服务器独立部署。公有云会根据 CN 和 DN 的配置来自动分配。

CN 与 DN 配置建议

CN 节点组所需要的内存 = (连接数 / CN 数 * (work_mem + temp_buffers) + (maintenance_work_mem * 3 + 后台进程占用 + 系统预留)) * CN 数 / 0.75 其中,默认参数如下:
temp_buffers:8MB
work_mem:4MB
maintenance_work_mem:
32GB及以下,用512MB。
(32GB,64GB],用1GB。
(64GB,128GB],用1.5GB。
128GB以上,用2GB。
shared_buffers:1/4 内存。
后台进程占用:(CN * DN * DB数量 * 10) * 4MB,可以按照1GB来估算。
系统预留:1GB~3GB。
数据重分布内存:根据实际情况调整,不在估算范围内。
DN 节点 CPU 单核的处理能力:2个 - 10个活跃并发连接数/核

配置示例

假设当前 CN 和 DN 已部署完毕,基于所部署的机型,为达到资源利用的最大化,可选的配置如下:
CN 配置
DN 配置
1核4GB
1核6GB
2核8GB
2核12GB
4核16GB
4核24GB
8核32GB
8核48GB
16核64GB
16核96GB
32核128GB
32核192GB
64核256GB
64核384GB
若当前活跃的并发连接数为1000,则配置建议如下:
由于 DN 节点 CPU 单核的处理能力为:2个 - 10个活跃并发连接数/核,因此 DN 可选配置为:16核64GB * 8 、32核128GB * 4 或 64核256GB * 2。
DN 的总内存不能小于 CN 的总内存。
实例的配置如下:
CN:2组,每组4核16GB。
DN:8组,每组16核64GB 或4组,每组32核128GB或2组,每组64核256GB。
GTM:建议 GTM master 单独物理机部署,CPU 不少于24核。