TiDB v4.0.14:如何处理导致高CPU和高I/O的长时间查询?

【 TiDB 使用环境】生产环境
【 TiDB 版本】v4.0.14
【遇到的问题:问题现象及影响】
想请问一下大佬们,目前在某些情况下,查询执行时间过长会导致高CPU使用率和高I/O操作,进而成为TiDB集群的瓶颈。请问在TiDB v4.0.14版本中,有没有办法找出这些执行时间过长的查询,并且是否有办法将其终止?
*目前公司因为一些原因无法升级tidb

慢查询里面会有记录。下面是v4.0.14的归档文档。

不过,我感觉你找的应该是这个文档。

上面两个都是sql语句执行结束后的跟踪检查,如果是正在执行的sql,要通过 CLUSTER_PROCESSLIST来查询。

1 个赞

可以通过 kill tidb [进程号] 的方式终止。但是v4.0.14有个局限就是只能终止当前节点上的。比如tidb节点有11、22、33,11节点上的语句,只能连接到11节点然后kill,不能连接22节点去kill11节点的语句。也就是不能通过负载ip去连集群,必须用具体的tidb节点ip去连集群。

1 个赞

太感谢大佬啦~

1 个赞

:handshake::handshake::handshake:

大佬,还想求问一下:
是否有任何解决方法可以从所有 TiDB 节点中完全终止长时间运行的查询呐?因为在我们的生产环境中,有 5 个 TiDB 节点,并且经常遇到未优化的读写查询。我们需要从 TiDB 集群中完全终止这些查询。

v4版本不行,高版本可以。 不过不用担心,一个语句只会在一个tidb server节点上运行,不会同时在多个tidb server节点上运行,所以在哪个节点上看到的慢查询,就在哪个节点上终止就可以。

高版本能实现他的需求吗

可以,高版本支持任意节点终止进程。