通过 LB 连接 tidb, kill tidb xxx; tcp连接并未断开

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:TIDB3.0.5
  • 【问题描述】:tidb kill session 后tcp连接依然在,这个是什么原因,前端接的是LB???

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

你好,

请确认下 kill 方式,tidb 目前支持 kill tidb processlist_id;

https://pingcap.com/docs-cn/stable/sql-statements/sql-statement-kill/#kill-tidb

确认是kill tidb processlis_id, tidb-server前面 是LB

在 LB 中 kill tidb xxx 是不起作用的因为,LB 中的 id 不能保证全局唯一,需要到指定 tidb 中执行,

怎么能查到是那个thread_id,对应是那台tidb

你好,

3.0 版本目前无法查看,在 tidb 4.0 中有系统表 information_schema.CLUSTER_PROCESSLIST 中记录了相关信息。

4.0生产环境可用了吗?

另外我在tidb层面已经kill tidb thread_id,show full processlist 看不到了,但是netstat -an还是有tcp连接在的

你好,

4.0-ga 在本月底将发布,目前可以测试使用 4.0.0-rc.2,上线前还是建议充分进行业务测试。

看下程序执行中的语句是否在 kill tidb xxx 之后退出,如果退出就是预期。tcp 可以看下程序是否有其他连接,tidb processlist 表示连接 tidb 的 thread。

我抓包看过,发出kill tidb thread_id,tidb没有发出reset 网络包

kill tidb xx 操作属于数据行为,不会操作 OS。目的是释放数据库连接

那个字段标识TIDB实例标识

可以根据 instance 和 info 字段判断要 kill 的语句具体在哪个实例上