首批通过分布式安全可靠测评,为关键业务系统打造
均衡关闭 unit 自动迁移问题
更新时间:2024-01-22 01:56
问题描述
在将 OceanBase 数据库集群从 2-2-2 扩展节点变为 3-3-3 架构时,集群的 enable_rebalance 和 enable_auto_leader_switch 设置为 false,resource_soft_limit 设置为 100 的情况下,add server 后会自动触发 unit 迁移。
适用版本
OceanBase 数据库 V3.x 版本。
问题原因
从
__all_virtual_server_stat的cpu_capacity、cpu_max_assigned、mem_capacity、mem_max_assigned来看,可知 RS 所在的节点内存超卖。OceanBase 数据库 V3.2.x 版本当 RS 节点存在 CPU 或 MEMORY 超卖的时候,会尝试迁出 unit 释放资源,避免 RS 节点服务不稳定。当集群是 2:2:2 的时候,由于租户已经是 2:2:2 分布,因为同一台机器不能有两个以上同租户的 unit,租户 unit 没有迁出的空间,当往 RS 节点所在 Zone 新加机器时,因为超卖+满足迁出条件,就会尝试将普通租户的 unit 迁出,且这段逻辑目前没有控制开关。
解决方法
恢复方法:临时调大
resource_hard_limit来规避该问题。规避方法:
避免超卖。内存超卖是无法挤占的,CPU 主要影响的是工作线程数目,超卖的话可能会导致 load 高而产生一些问题。
调大
resource_hard_limit设置超卖。