升级集群时集群状态检测报错

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.1.0

【遇到的问题:问题现象及影响】
我想升级TIDB版本到最新版,检查集群时集群状态报错。
Checking region status of the cluster loantidb…
Regions are not fully healthy: 14 pending-peer
Please fix unhealthy regions before other operations.
我提供了pd-ctl region check pending-peer 和监控截图。
请问如何将pending-peer状态消除?谢谢大家。

重启了TIKV还是这样。
【资源配置】
【附件:截图/日志/监控】


pending_peer14.txt (17.8 KB)

pending 一般含义是指 tikv 这边压力过大,有排队堵塞。

这种情况不常见,是不是 compact 被异常关闭了?

什么意思?不太懂。

你可以看下 20 年的一个帖子,也是你这种情况:tikv下线产生learner-peer 和 pending-peer - #74,来自 kimi

意思就是你这个情况非预期。大概率是集群有点异常

集群有用过 lightning 或者修改过 tikv compact 相关配置么?还有集群压力大不大。一般都正常的话 很少会有 pending 的,pending 时间久了就应该会有 down peer 了。。。。。

看了一眼监控 你集群里面确实有 down peer。

tikv-ctl 这个是每个tikv都需要安装吗?还是说只需要在其中一台上面执行就可以了?麻烦了。

没有做lighting和修改,只是开发那边经常批量删除,用的那个batch delete命令。应该是那个影响的,就是不知道这个pending-peer多久会消失。

并且我给一段时间执行region check pending-peer后的内容都是不一样的,但是pending-peer的条数都是14条,也不知道里面在干什么。集群只是每天会定时导入数据,大部分时间都是空闲的。

你可以拉开监控 比如看个 3 天的,看看有没有什么时间段 down 和 pending peer 都是消失的,有的话挑那个时间段去升级。

tikv 当前有做什么特殊配置么?也可以发来看看呐。

或者手动做下集群的 tikv compact:https://docs.pingcap.com/zh/tidb/dev/tikv-control#通用参数
可以看看能否解决,不过需要非业务时间段做。

导入数据用的什么功能。https://docs.pingcap.com/zh/tidb/dev/troubleshoot-tidb-lightning#使用-tidb-lightning-后tidb-集群变慢cpu-占用高

如果你们有这种情况,也会导致 pending 甚至有 down peer

监控如图:


7天的。
tidb的配置如下:
tidb.yaml (6.7 KB)
麻烦帮忙看看有啥地方配的不对。

数据导入是开发写了一个java项目从其他地方拉取数据文件,然后再项目里面进行清洗后生成一个csv文件,每天执行一次每次大概300M的csv文件,java项目读取csv后生成sql,然后insert进TIDB的。

看了一眼 调整了好多 tikv 的配置,一般不推荐自己调整 raft 和 rocksdb 相关配置的 哎。

split-region-check-tick-interval – 没有必要调整 300 吧

  • 检查 region 是否需要分裂的时间间隔,0 表示不启用。
  • 默认值:10s
  • 最小值:0

https://docs.pingcap.com/zh/tidb/stable/tikv-configuration-file/#disable-auto-compactions

而且你关闭了 compact,调整下,开启 compact,手动可以用 tikv-ctl 做下 cluster compact。

不推荐改这些东西。

compact 不能关的,compact 是底层数据文件整理压缩,你关了 数据连 gc 都没法做的。

好的,谢谢大佬,我马上改了重启一下tidb,然后观察一下。

改了你说的两个参数:
raftstore.split-region-check-tick-interval: 30s
rocksdb.defaultcf.disable-auto-compactions: false
重启了tidb后,监控界面其他都还显示,但是pending-peer什么的没显示了:


:crazy_face:

感觉你的监控有点问题,compact 应该没那么快搞完

看着好像可以了,我重启了一下prometheus。


然后check了一下pending-peer:

tiup ctl:v6.1.0 pd -i -u http://127.0.0.1:2379

Starting component ctl: /root/.tiup/components/ctl/v6.1.0/ctl pd -i -u http://127.0.0.1:2379
» region check pending-peer
{
“count”: 0,
“regions”: []
}
最后检查集群:
Checking region status of the cluster loantidb…
All regions are healthy.
非常感谢大佬。

升级也快速完成了: