集群缩容

为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:

  • 系统版本 & kernel 版本:
  • TiDB 版本:3.0.2
  • 磁盘型号:500G SSD
  • 集群节点分布:3个tikv独立,2个tidb与3个pd混合部署
  • 数据量 & region 数量 & 副本数:
  • 集群 QPS、.999-Duration、读写比例:
  • 问题描述(我做了什么):目前只做扩缩容测试,将tikv一个节点下线,使用pt-ctl检测未显示Tombstone 状态 一直是offline,查看监控,被下线的节点还有leader数据显示,麻烦看下正常嘛

请阅读此贴,解决方案已有。TiDB 3.2 TiKV 缩容问题

你可以直接关掉已经下线的 TiKV,Grafana 上面应该就不会有这个 TiKV 的曲线了。

另外一个比较 hardcore 的做法就是,用 pd-ctl config set max-replicas 2,强制的将副本设置为 2 或者 1 个,不过切记别在生产环境中用这个,后面我们也可能把这个口子给干掉的。

操作的时候已经把下线节点的服务都停掉了,观察了一段时间还是有数据显示,不知道是不是 3个tikv的问题

你的 metrics 是配置的 PushGateway 吗?还是直接让 prometheus pull 拉数据的。

监控是ansible默认安装的,没有修改其他配置

下线操作后,rolling 过监控后,下线的节点就不会再显示数据折线图,我看你发的截图10 点后已经没有了数据折线图显示。虽然下线了该节点但是 prometheus 中仍然还残留有该节点的历史数据,这也就是为什么在 dashboard 右侧还有显示的原因。

监控显示的信息有异常,昨天没有导入数据前,当前的存储空间是125G,导入后是200多G,昨天晚上将测试数据删除之后,这个存储空间和region一直没有回收,这个是怎么回事呢,有碎片这种情况,需要额外手动删除吗

测试数据删除是 delete 操作还是直接 truncate 表来做的?如果是 delete 操作删除数据,存储空间没有释放,需要看下 GC 是否正常运行,执行下 select variable_name,variable_value from mysql.tidb; 贴下结果。

是将库删除的drop database sbtest;操作的。刚刚将数据再次导入,监控显示当前存储空间也没有长。region数量也是不变,刚看了下,

select variable_name,variable_value from mysql.tidb; 贴下结果

截图看 GC 是正常的,可以看下 tidb.log,grep gc_worker 拿下信息