【3.0.2.0】集群部署其中一台机器cpu占用过高

【TDengine 使用环境】

生产环境

【TDengine 版本】

3.0.2.0

【操作系统以及版本】

ServerA: Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle)
ServerB: CentOS Linux 7 (Core) 作为应用连接
ServerC: Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle)

【部署方式】

非容器部署

【集群节点数】

3

【集群副本数】

0

【描述业务影响】

我们这边主要是做充电桩业务,晚上0点有大量家用充电桩发起充电,这时会大量写入工作数据,如下图

到0点后数据明显增长了一倍之多CPU也飙升很快,我感觉好像就只有这一台机器在负责处理其他机器都不起作用

use db 后,show vgroups截图看看吧

这里有2个问题。
1、创建db的时候,vgroups 配置太少了。现在每个vgroups 上有接近10万子表;

2、2个vgroups 的 leader 都在 节点2上,因为只有 leader 提供服务,所以业务压力都在节点2 上,导致cpu 高。应该均衡一个 leader 到其他节点上去。
企业版有balance 命令来触发leader 均衡。但开源版不支持。

这个建立 db 时候 vgroups 参数设置不合理。只有 2 个 vgroup,是不是第二节点压力高?如果是企业版的话可以进行平衡 leader。但社区版本没有这个。

这个重启第二节点后可能会切到 1 或 3,但有概率2 个都一起到其中一个节点。

A节点CPU高

A节点对应 图片中的哪个, 1, or 2, or 3 ?

如果重启第二个节点,查询的时候会有什么影响吗?

目前看第一个节点是不是没有任何子表数据?

3 个节点都有一份数据,只是 leader 都在 2 号节点。

重启 2 的时候,vnode 会自动从 1、3 选出leader。

有啥指令可以手动切么?

社区版本没有,这个是企业版的功能

如果重启一个节点对查询会有什么影响吗?

能修改数据库的vgroups数量吗?

一节重启会导致当前正在执行的请求有概率失败,因为要重新选主。

无法修改已经创建好的数据库的 vgroups,只能重建。