tidb-server内存占用200G,processlist无连接后,还不能正常GC内存。

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.5.0
【遇到的问题:问题现象及影响】
正常使用中,开启altermanager后收到报警,发现内存200G很久了。tidb-server火焰图显示ParseSQL就占了50GB+。
设置tidb_server_memory_limit=150G,内存没有下降。
随后拉出该节点的所有流量,processlist清空,但是内存还没有下降。

【附件:截图/日志/监控】


image

改为产品缺陷反馈了。 感觉是内存溢出没释放。。。着急的话 感觉可以重启一下。。。。:thinking:

7.5还有这个问题呀

内存重启是可以解决,我们觉得这个场景比较珍贵,保留了现场,还没重启。

[2024/05/31 11:48:43.102 +08:00] [WARN] [servermemorylimit.go:179] [“global memory controller tries to kill the top1 memory consumer, but no one larger than tidb_server_memory_limit_sess_min_size is found”] [tidb_server_memory_limit_sess_min_size=134217728]

该tidb节点目前已经无业务了,CPU还是很高,CPU消耗也在gc线程中。


造了个场景(先把tidb_server_memory_limit_sess_min_size设置足够小,然后执行一个大查询),让代码执行到runtime.gc,但内存也没释放。


tiflash和tidb放一起啊,做了numa隔离?

建议直接把 tidb_enable_historical_stats 关闭,这个功能现在存在问题,master 上已经默认关闭了

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