南大通用GBase 8a数据库集群管理节点数量确定和资源使用情况分析

GBase 8a数据库集群支持多个管理节点,但一般建议根据对外负载数量,使用3-9个管理节点即可。本文对管理节点个数的选择,给出一些思考建议。

节点数确定

方法1,根据并发情况

1、管理节点数量
1.1 管理节点与数据节点数量无关。
一般按并发数来评估。可以按照单节点20-30个并发来计算,SQL并发100个的情况下配置3个或者5个coordinator节点即可。一般建议不超过9个,否则浪费了系统资源,也增加了运维成本。
1.2 最少3个
管理节点数量出于投票考虑,最好是奇数,考虑高可用,因此建议coordinator节点最少3个。
1.3 管理节点数量建议为单数
为保证管理节点内部投票机制,建议为单数。

2、管理节点资源占用
2.1、CPU
    不超过数据节点CPU负载的10%。
    管理节点负责SQL解析和调度,以及发送最终结果给调用端,不负责具体的数据处理和计算。
    如数据节点CPU使用率预计在70%以内,可以将管理节点和数据节点部署到一起。
2.2、磁盘。
    普通SQL操作不占用磁盘(日志除外,这部分忽略吧),SQL使用的数据直接在数据节点间传送,不通过管理节点。最终返回结果的数据从数据节点通过网络接收后,直接转发给调用者,不落地文件。
    例外:如客户启用了服务器端游标(server cursor),实现【前后双向移动】,则管理节点需要占用本地磁盘来生成临时表(默认在/tmp目录下)实现该功能,此时需要根据实际业务数据量来评估占用的磁盘。 偶尔使用一次的百万行以内的可以忽略。
2.3、网络
   除非通过管理节点导出或传入大量数据,比如超大SQL语句查询,或者返回超大结果集的查询,需要占用网络来接收和发送数据,其它场景可忽略。特别是不低于万兆网络下。
  节点多时,网络延迟不能高,特别是性能要求高的场景。

方法2、根据数据节点数量

根据集群规模和,Coordinator节点个数建议3~11的奇数个。

如小规模集群(data节点数<=10)设置3个coordinator节点;
中等规模集群(data节点数在[10,30]之间)设置5个coordinator节点;
大规模集群(data节点数在[30,100]之间)设置7或9个coordinator节点;
超大规模集群(data节点数>=100)设置9或11个coordinator节点。

集群节点最少数量确定

整体无高可用,无数据备份

1个节点:包括管理(gcware),调度(gcluster)和计算(gnode)

整体无高可用,有数据备份

2个节点:2个管理(gcware),2个调度(gcluster)和2个计算(gnode)。

任意一个节点故障,都会导致集群不可用,但数据不会丢失。

整体有高可用,有数据备份

3个节点:包括3个管理(gcware),2个调度(gcluster)和2个计算(gnode)。(只需要2台大容量的数据节点)
或者
3个节点:包括3个管理(gcware),3个调度(gcluster)和3个计算(gnode)。(需要3台大容量的数据节点)

其中所有节点可以任意坏一个,数据不丢失,服务不中断。