如何分析tidb-server的内存占用?

【 TiDB 使用环境】生产环境

【 TiDB 版本】5.2.3

【遇到的问题:问题现象及影响】
我们TiDB集群会留有一个专门做备份用的tidb-server, 备份使用的是dumpling, 每天夜里全备。
一段时间后,这个tidb-server会占用几十G乃至一百G以上的内存,当前该tidb-server无任何连接,内存也不释放,请问如何分析这个tidb-sever内存占用?是内存泄露还是什么原因?有什么解决方式吗?


【资源配置】
服务器内存情况:

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

建议可以看一下tidb的日志,正常在刷什么信息

基本上都是TIME_COP_PROCESS相关的日志


多抓几次,然后装个Graphviz工具在cmd下调用来查看内存占用情况。

你单独查一下这个tidb 节点看有无sql进程,show processlist ;ddl job也查一下;还有这种情况是不是重启后就能释放内存

:+1: :+1: :+1:

1、没有sql线程,这个tidb-server不接线上流量,只做备份用
2、重启可以释放内存;但不解决根本问题

我试试这个方法

有Graphviz的分析方法吗?

go tool pprof 来分析~

pprof分析内存
windows先安装:https://www2.graphviz.org/Packages/stable/windows/10/cmake/Release/x64/
生成配置文件
然后找到解决方法,右键管理员身份打开cmd,进入目录:
C:\Program Files\Graphviz 2.44.1\bin
执行:dot -c
pprof查看tidb heap日志
go tool pprof -http :8081 c:\heap_xxx
这是我以前的笔记,供参考。

:+1: :+1: :+1:

pprof 可以分析