KILL tidb +id不生效

【 TiDB 使用环境】生产环境
【 TiDB 版本】 v5.1.4
【遇到的问题】 kill tidb +id不生效
【问题现象及影响】
tikv节点负载高
现象如下:
mysql> SELECT id,COMMAND,TIME,STATE,TxnStart FROM INFORMATION_SCHEMA.CLUSTER_PROCESSLIST where TIME>1000 and COMMAND!=‘Sleep’\G;
*************************** 1. row ***************************
id: 45516433
COMMAND: Query
TIME: 145610
STATE: autocommit
TxnStart: 10-10 17:55:31.808(436573498719076387)
*************************** 2. row ***************************
id: 45517293
COMMAND: Query
TIME: 145492
STATE: autocommit
TxnStart: 10-10 17:57:30.007(436573529704235183)
2 rows in set (0.01 sec)

ERROR:
No query specified

mysql> kill tidb 45516433;kill tidb 45517293;
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT id,COMMAND,TIME,STATE,TxnStart FROM INFORMATION_SCHEMA.CLUSTER_PROCESSLIST where TIME>1000 and COMMAND!=‘Sleep’\G;
*************************** 1. row ***************************
id: 45516433
COMMAND: Query
TIME: 145668
STATE: autocommit
TxnStart: 10-10 17:55:31.808(436573498719076387)
*************************** 2. row ***************************
id: 45517293
COMMAND: Query
TIME: 145550
STATE: autocommit
TxnStart: 10-10 17:57:30.007(436573529704235183)
2 rows in set (0.03 sec)

ERROR:
No query specified

tidb是不是多节点的,要连接到会话所在节点才可以kill

是在对应节点上执行kill的,部分kill成功了,就剩下这俩,怎么都kill不掉,而且看tikv节点的负载一直很高,说明确实没被kill掉,但是客户端反馈,查询早就取消了

重启tidb节点可以杀死进程

可以贴一下你kill不掉的sql吗

去对应的节点服务器上去kill

1 Like

/* ApplicationName=DataGrip 2022.2.4 */ select a.userId, a.productId, a.groupId, b.assistantId from dwd_user_group_l a left join dwd_assistant_group_l b on a.productId = b.productId and a.groupId = b.groupId

where a.status = 0 and a.userId not like ‘qa%’ and a.userId not like ‘%test%’ order by a.joinGroupTime desc limit 100000

就是在对应的服务器上kill的

现在有俩tidb节点,重启这个节点的话对业务的影响是什么啊,闪断?

这个节点上的请求都会断掉,需要应用端能自动重连,一般配了连接池都可以的

不能说相同点和我们遇到的问题完全一样吧,就是9成一样。大的limit ,你用explain anlyze 看看执行计划里面是不是有index hash join ,如果有,你用hint 强行将连接方式指定为index join,可以绕过这个问题不再产生僵尸session

1 Like