【 TiDB 使用环境】生产环境
【 TiDB 版本】v4.0.0
【复现路径】对表数据进行update操作
【遇到的问题:问题现象及影响】系统表PROCESSLIST发现很多update和commit操作的mem内存使用异常的大,然后两个tibd节点的cpu使用率达到90%以上,整个集群连接异常,简单地查询速度极慢
【资源配置】30台服务器的一个tidb集群
图中的xxl_job表实际就两条数据,理论上update修改数据不会消耗这么大的内存
【 TiDB 使用环境】生产环境
【 TiDB 版本】v4.0.0
【复现路径】对表数据进行update操作
【遇到的问题:问题现象及影响】系统表PROCESSLIST发现很多update和commit操作的mem内存使用异常的大,然后两个tibd节点的cpu使用率达到90%以上,整个集群连接异常,简单地查询速度极慢
【资源配置】30台服务器的一个tidb集群
这个mem列没啥用,不要当做什么参考价值
低版本bug,你服务器都没这么多内存。4.0太老了,升级吧
高版本也这样的,别看这个值了
大佬们快往上反馈下,不是个例了
提issue吧,把复现步骤贴上去
看着是个老问题,有人提过issue了
mem field in information_schema.processlist display abnormal · Issue #18588 · pingcap/tidb · GitHub
Grafana 监控图和机器的内存使用量如何?
这个SQL语句的 explain 执行计划也麻烦贴一下,方便分析
那个值一看就很假
没有参考价值,可以忽略
对,整个集群也没这么多的内存的。 但是集群状态当时异常了一两个小时,jdbc连接集群都连不上,简单查询也很慢很慢,然后查系统表查到这个mem异常问题的,这个mem异常问题恢复后,集群也跟着恢复了 ,所以想问问这个mem异常大是怎么导致的
升级吧,太老了
+1 先升上来再说吧,这个版本已经太老了
确认一下对应的SQL语句的 explain 执行计划,自己tidb日志
这里面mem应该体现的是不是当前这个sql占用的内存量,而是你这个链接累计的内存占用量,你现在是一条update sql,但是可能前面是一个很大的查询sql,所以累计内存占用的多,但是这个不代表当前这个连接还占用内存很多。