TiFlash 第6次 OOM

V4.0.13

最开始是有一个tikv, io被打满,cpu wa 20%多,然后该tikv disconnected,之后所有写入任务全部失败后,tikv恢复正常,但过了一会一台tiflash就宕机了,过了20多分钟第二台tiflash也宕机了,这两台都是无限重启,无限oom起不来

tikv当时负载很高,看着是有大事务或死锁



image

但是不理解的是为什么tikv恢复后,tiflash又挂了,参考这个文章,并不是legacy文件太多


image

TiFlash OOM 的问题,可以提供下下面的信息:

  • 导出 TiFlash grafana 监控:TiFlash-Summary 、TiFlash-Proxy-Details、TiFlash-Proxy-Summary

  • TiFlash 的日志:tiflash.log 以及 tiflash_error.log

4.0版本的tiflash监控貌似很多都没数据,我拿了一个节点的日志:
tiflash_log.tar.gz (38.8 MB)

正常情况下, legacy.page_xx_x 的文件夹数量预期在 200 以下。
在左上角选择其中一个发生 OOM 的节点,导出下面的监控:

TiFlash-Summary

TiFlash-Proxy-Details

Node_exporter

以及该 OOM 的节点的日志 tiflash.log/tiflash_tikv.log/tiflash_error.log

看了下grafana上全是no data,进城都是在的


其他日志:
tiflash_other_log.tar.gz (1.8 MB)

日志时间不对吗,tiflash 日志没看到重启,可以给个具体的时间点

日志时间 因为时区少8个小时


有结论了吗老师

目前怀疑是 TiKV 在之前那段高负载/大事务的时间里,无法向 TiFlash 及时同步数据。导致 TiKV 恢复后大量向 TiFlash 发送 snapshot 和 raft log 导致 TiFlash OOM。

TiFlash 的监控还看不到吗?想确认一下 TiFlash OOM 时的写流量。

监控看不到,4.0.13的tiflash 监控全是no data,
不看监控可以看到当时的写流量吗,比如从aws上看

如下是aws的流量监控,时间差8小时,在前面上午10点(图中的2点)入流量最高,也没挂,而下午3点(图中7点)没啥流量反而挂了,应该不是这个原因

另外 tikv恢复后, 挂了第一台tiflash,大概过了20分钟后,挂了第二台tiflash,之后第三台就不再挂了,这个符合上面的情况吗,给tiflash推送大量snapshot和raft log,应该不止一台吧

你好,建议将 tiflash-learner.toml 的 raftstore.snap-handle-pool-size 修改为 0 看看。

https://docs.pingcap.com/zh/tidb/stable/tiflash-configuration#配置文件-tiflash-learnertoml

这个是能让tiflash起来? 我们已经把tiflash下线重新扩容回来了,我们想知道原因和如何避免,tikv先宕机,后续又挂两个tiflash这个现象我们已经是第二次了

TiFlash 4.0.x 版本 OOM 的原因比较多。由于监控缺失,单纯从日志无法准确判断根本原因。

我们已经在 5.2.x 及以上版本做了比较彻底的改进来解决 OOM 和稳定性问题,建议后续尝试使用,也欢迎来提意见。

1赞