为了更快的定位您的问题,请提供以下信息,谢谢
【详述】show proc ‘/current_queries’;僵尸会话如何杀掉呢
【业务影响】
【是否存算分离】否
【StarRocks版本】3.2.8->3.2.16
【集群规模】3fe(3 follower)+12be(fe与be混合部署)
【机器信息】65C/750G/万兆
【联系方式】 StarRocks社区群5 -思变 [1412195108@qq.com]
【附件】
为了更快的定位您的问题,请提供以下信息,谢谢
【详述】show proc ‘/current_queries’;僵尸会话如何杀掉呢
【业务影响】
【是否存算分离】否
【StarRocks版本】3.2.8->3.2.16
【集群规模】3fe(3 follower)+12be(fe与be混合部署)
【机器信息】65C/750G/万兆
【联系方式】 StarRocks社区群5 -思变 [1412195108@qq.com]
【附件】
在 StarRocks 中,SHOW PROC '/current_queries'; 命令会显示当前正在执行的查询和活跃的会话。如果您看到了所谓的“僵尸会话”,通常是客户端已经断开连接,但 StarRocks FE 仍然保留了会话信息。
要杀掉这些僵尸会话,您可以使用 KILL 命令。
步骤如下:
查找僵尸会话的 ConnectionId:
首先,执行 SHOW PROC '/current_queries'; 命令,并仔细查看输出。找到那些您认为是“僵尸”的会话。这些会话通常:
Host 或 User 信息可能看起来不正常。Time(持续时间)可能非常长,远超正常查询的执行时间。Info(查询语句)可能为空或显示不完整的语句。ConnectionId 列的值。例如,输出可能像这样:
+--------------+---------+------+-----------------+-----------+-------------------------------------+-----------+----------+
| ConnectionId | User | Host | Catalog | Db | Info | QueryId | Time |
+--------------+---------+------+-----------------+-----------+-------------------------------------+-----------+----------+
| 12345 | user1 | % | default_catalog | test_db | SELECT * FROM my_table; | query_abc | 10 |
| 12346 | starrocksmgr | 10.1.1.1:12345 | default_catalog | NULL | NULL | NULL | 3600 | <-- 这可能是一个僵尸会话
+--------------+---------+------+-----------------+-----------+-------------------------------------+-----------+----------+
在上面的例子中,ConnectionId 为 12346 的会话可能是一个僵尸会话,因为它持续时间很长,且 Info 为 NULL。
使用 KILL 命令杀掉会话:
一旦您确定了要杀掉的僵尸会话的 ConnectionId,使用以下命令:
KILL CONNECTION <ConnectionId>;
将 <ConnectionId> 替换为您在第一步中找到的实际 ID。
例如,要杀掉 ConnectionId 为 12346 的会话:
KILL CONNECTION 12346;
注意事项:
OPERATOR 或 ADMIN 权限才能杀掉其他用户的会话。普通用户只能杀掉自己的会话。KILL 命令之前,请务必确认您正在杀掉的是确实不再需要的僵尸会话,以免中断正在进行的合法查询。KILL 无效: 极少数情况下,如果 FE 内部状态非常异常,KILL 命令可能无法立即生效。如果僵尸会话在执行 KILL 后仍然存在一段时间,并且没有新的活动,这可能表明 FE 存在更深层次的问题。在这种情况下,您可以:
fe.log),看看是否有与这些会话相关的错误或警告信息。通常情况下,KILL CONNECTION <ConnectionId>; 是解决僵尸会话问题的标准且有效的方法。
老板你有点答非所问了 