kill 任务,任务无法杀死

【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.1
【复现路径】分配100G 运行内存,分配内存占用超过100G的大任务
【遇到的问题:问题现象及影响】查看占用内存超出内存,并占用磁盘空间,现需要杀死正在运行的任务,kill id 无效

【资源配置】

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

https://docs.pingcap.com/zh/tidb/v6.5/sql-statement-kill
kill tidb id; 这个试试

用如下sql执行查询出id,然后执行KILL id试试
SELECT ID, USER, INSTANCE, INFO FROM INFORMATION_SCHEMA.CLUSTER_PROCESSLIST;

1 个赞

kill tidb id 试试

kill tidb id

因为TiDB有多个计算层节点,如果没有开启global kill功能,链接所在节点和执行kill命令的节点不是同一个时就无法干掉。

所以,确认是否开启了global kill功能,如果没开,可以开启后再kill。印象中你的这个版本应该是支持了的。

另一个方式是找到链接所在节点,然后登录到这个节点上再执行kill命令,具体方式上面的大佬有提到。这种方式在任何版本都支持。

TiDB 从 v6.1.0 起新增 Global Kill 功能,楼主6.5如果不是低版本升级应该没问题

对的,如果正确开启了 global kill 功能,按理是不会出现楼主所提到的现象的

6.5对于kill已经做了很多埋点,常见的一些都能够杀掉,但是还有一些落盘行为没有很好的处理。
参考: 非并行hashAgg数据落盘读取阶段kill当前语句不生效

因此建议使用最新补丁比如6.5.5或者7.5版本做测试看看是否该机制已经进一步完善了。

是的这个任务 超出内存,占用部分磁盘空间

我也遇到过,杀不掉进程,只能重启tidb

试试在本地命令行连接工具里面执行

重启tidb-server最根本解决

tidb连接节点kill id,执行完后show processlist ,不行的话过一会再看看 之前遇到过过一段时间进程没了 还不行的话只能重启tidb-server

kill tidb id

你这是TiDB层的ID吧?要在系统层面kill吧?

确认是开启了 global kill 的功能,但是存在占用磁盘的情况杀死任务,没有好的解决办法,重启了tidb-server

kill 不掉一般就会滚动重启服务实例,想把这一层搞清楚