TiDB Server服务器不定期磁盘IO爆满,CPU爆满,导致整体宕机

【 TiDB 使用环境`】生产环境
【 TiDB 版本】V5.4
【遇到的问题】
我这里生产遇到一个比较棘手的问题,TiDB Server 会没有规律的隔个几天就会突然间宕机。系统层面表现为磁盘IO一瞬间暴涨到巅峰,CPU也一瞬间暴涨到巅峰。然后就服务器不可用了,ssh都连不上去那种。这里只有TiDB Server出现宕机,3台TIKV一切正常。临时解决办法只能去阿里云后台重启机器才能恢复。

配置:
机器1:8C16G 500G ESSD磁盘。部署服务:TiDB Server, PD 监控(prometheus,grafana)。
机器2: 16C32G 500G ESSD磁盘。部署服务:TiKV-1
机器3: 16C32G 500G ESSD磁盘。部署服务:TiKV-2
机器4: 16C32G 500G ESSD磁盘。部署服务:TiKV-3

tidb server 确实是混合部署了不太规范。但是平常查看监控,确实是没啥压力,本身我们应用的用户量不大,访问量也不大。平常数据库也是在2k QPS上下,基本上来看资源负载都是在50以下。

但是就是会不定期出现瞬间IO爆炸然后宕机的情况。下面附上阿里云后台硬件监控截图:

这种情况我这里已经出现至少4次了,每次都只能阿里云后天重启机器解决。我尝试看了系统该时间点前后的的tidb日志,pd日志,慢sql,没发现什么特别的异常,也有可能存在我认知外没排查到的地方。

我初步怀疑是混合部署监控有问题,我猜是prometheus或者grafana要定期做一些数据清理,然后与tidb或者pd有磁盘io上的冲突,最终导致磁盘IO瞬间拉满,接着宕机。但是这个只是我的猜想,还得各位大佬帮忙判断一下。

我在另外一个帖子提了相关的问题,也是因为这个原因。prometheus监控如何从重新部署?

麻烦各位帮忙看看,非常感谢

1 个赞

补充一下:不太像是那种 select * 大表的操作。因为我的3个TIKV 磁盘IO、网络IO、CPU都是正常的。

1 个赞

IO 高的是tidb server上的哪块盘,系统盘吗? 看下swap是不是开着呢。node exporter监控有swap信息

1 个赞

看tidb的dashboard,看内存涨了 ,可以看下占用内存高的语句是哪些,还有看下tidb服务器的log日志

1 个赞

dashboard看看有没有咱内存的sql或expensive sql
再看看那段时间tidb的log

1 个赞

看下有没有自动analyze相关的信息呢,那段时间
可以看下
show analyze status;
还有tidb的日志

1 个赞

先定位问题吧,开启 expensive query
把问题定位到了,就好办了
https://docs.pingcap.com/zh/tidb/v6.0/identify-expensive-queries

1 个赞

没什么有用的信息 最好能定位到问题链

1 个赞


没有开启swap

1 个赞

我今天analyze 手动执行了一些表,情况好一些了

1 个赞

我查了一下,有很多expensive query,大多是因为表很久没有发生analyze 或者analyze 失败,导致索引失效

2 个赞

手动analyze 一下

如果数据变化很大的话,需要开启 自动 analyze,而且需要在业务不繁忙的时候做这个事情,不然会影响性能

查看一下慢SQL

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。