tidb节点内存异常

【 TiDB 使用环境】生产环境
【 TiDB 版本】7.5.2
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
有2个tidb节点,运行一段时间之后,2个节点的内存使用量差异很大,一个内存使用在14G,一个5.7G

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
用dashboard做了一下内存分析
异常节点的分析图:

正常节点的分析图

分析图.rar (1.3 MB)

1 个赞

2个方向:
1,负载均衡怎么做的?连接数是否均衡?是不是有重负载的应用直连了其中一个tidb?
2,看topsql界面,看看2个tidb的运行负载差异大不大。
https://docs.pingcap.com/zh/tidb/stable/top-sql#tidb-dashboard-top-sql-页面

2个profiling图太糊了,很多细节看不清,总体感觉负载差异很大。

负载均衡用的SLB,流量都是均衡分配的,图片貌似页面展示有点模糊,上传了一个附件

1736230596278(1)

我查了下,有问题的节点的这个分支下全是和统计信息保存相关的内容。这部分在正常节点上是没有的。

所以内存占用高的主要原因是这个节点在做统计信息得收集。

这块到8.1版本才有比较大的提升,7.5版本的建议要么控制收集统计信息的时间,要么考虑把子版本升级一下,看看是否会有所改善。

1 个赞

如果是收集统计信息导致的内存过高,可以看一下tidb日志,找出收集的库表。看看收集的表是否有大字段,可以通过设置参数tidb_analyze_skip_column_types跳过大字段的收集

1 个赞

tidb的内存分析真不错

我也在尝试使用ppro工具分析tidbserver内存,看官方文档展示确实很详细

非常感谢,如果是这样,我看看能不能定期重启一下tidb节点,解决这个问题

查询了一下, ```
ANALYZE TABLE

分析了一下,是分区表的问题,每个月1号的时候,使用了新分区,貌似系统都会重新收集一下分区的信息,内存异常增加时间和这个统计信息收集能对的上。

1 个赞

可能和新分区无关,就是在跨月的时候存在问题。

修复的进度看这个issue

确实是跨月的时候有发生这个

这个bug哪个版本能解决呢

追踪第二个链接,看什么时候close。现在还是open的,合并代码没成功。