【 TiDB 使用环境`】生产环境
【 TiDB 版本】5.4
【遇到的问题】
TIDB内存持续没有释放,最终卡死宕机。
看这两个图,在10:22分左右内存TIDB内存占用持续上涨到最大值。接着应该是撑不住了。感觉像是整个服务器开始gc,然后CPU就上涨到99%。CPU到达99%后,持续了20多分钟都没下来,服务器一直不可用了。只能restart服务解决。
缺乏排查思路,麻烦大佬们帮忙看看了。谢谢。
现在又出现了,感觉今晚要GG,麻烦大佬们帮忙看看,内存分布情况导出在评论下面了
【 TiDB 使用环境`】生产环境
【 TiDB 版本】5.4
【遇到的问题】
TIDB内存持续没有释放,最终卡死宕机。
缺乏排查思路,麻烦大佬们帮忙看看了。谢谢。
现在又出现了,感觉今晚要GG,麻烦大佬们帮忙看看,内存分布情况导出在评论下面了
我遇到同样的问题,我是虚拟机宕机了4个小时,然后操作系统强行kill了tidb的进程,虚拟机才恢复访问。
建议你排查一下慢sql,重点是消耗内存大的sql。可以在tidb日志中查看到oom前最后执行的几条sql语句。然后看看消耗内存很大的 sql是不是有落盘行为
5.4默认tidb_analyze_version 应该是1,但是你检查一下,如果tidb_analyze_version=2的话,会有bug导致tidb oom
tidb的log贴一下吧
1,系统内存多大。
2,内存回收怎么设置的。
我日志里面非常频繁的打“schemaLeaseChecker is not set for this transaction” ,故障开始的时候,就开始打“[pd.go:152] [“get timestamp too slow”] [“cost time”=65.620823ms]” 了
机器配置8C32G 500ESSD。
内存回收设置怎么查?
5.4 tidb_analyze_version 的默认值是2,不至于默认配置埋坑吧
排查一下oom前有没有analyze table,如果有,就把tidb_analyze_version 改成1试试。我不太确定tidb_analyze_version=2的问题在5.4还存不存在
参数都优化了吗?
我这里安装tidb之前是按照文档里面挨个调了一遍系统层面的参数的
再出现内存异常增长是,按可以按如下看下内存哪个占的多
curl -G tidb-server:10080/debug/pprof/heap > heap.profile
然后使用go tool pprof db.heap.prof --> top命令查看
确实是这个问题,改了目前稳定多了。我在另外一个帖子也找到了类似的答案。
此贴暂时终结。确实是tidb_analyze_version=2的问题,目前改为tidb_analyze_version=1,稳定很多了,基本不会持续上涨了。3天大概上涨了1个3GB 左右内存,暂时先观察一下。
建议官方大佬再测一下这个case,是不是这个参数有问题。
谢谢大家!!
存在,我们遇到了
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。