【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.5.1
【复现路径】
创建资源组
CREATE RESOURCE GROUP rg1
RU_PER_SEC=20000, PRIORITY=MEDIUM, QUERY_LIMIT=(EXEC_ELAPSED=“1m0s” ACTION=KILL WATCH=SIMILAR DURATION=“5m0s”)
执行sql超过1min会被杀掉,初始几次是有效的
java.sql.SQLException: Query execution was interrupted, identified as runaway query
但是过几次后资源管控会失效
如 dwm_robot_supplier_first1 execute insert calc result 717548 cost 72051ms
而且还可能出现连表查询原本只需要4s的sql,突然耗时1小时,并且cpu打满的情况
不知道是否是系统bug,请大佬指导
有猫万事足
2
上面只是创建了一个资源组,还需要你绑定资源组到用户。
是不是有些用户绑的不是这个资源组,所以就不受你上面这个配置的限制。
https://docs.pingcap.com/zh/tidb/stable/tidb-resource-control#查看-sql-的-ru-消耗
另外文档中由上面这些方式可以看到sql对应ru消耗。建议发出来。可能对问题的定位会有所帮助。
1 个赞
资源管控功能是通过用户账号进行管理的,实现多租户功能特性。所以,楼主创建了资源组后,还需要绑定用户到资源组。
还可以通过show命令查看已经应用的具体内容。
Runaway 还没 GA,估计在 v8.1 GA,可以提个 github issue 或等 v8.1 GA 后试下
1 个赞
实际上已经绑定资源组了,所以runaway最开始能够生效
按照链接里面sql执行了,截图如下
已经绑定过资源组了,最开始是能够生效的,RU_PER_SEC=20000这个配置一直都能用,就是QUERY_LIMIT配置不生效,show命令我也找过,可能是没找到正确的吧
好的,谢谢指导,请问8.1有发布时间吗?是否是lts呢?
预计这个月发版,是LTS,可以关注看板,release: v8.1.0-LTS · Issue #50784 · pingcap/tidb · GitHub
这个语句排查一下它的慢查询情况,还有它所在租户(用户)的资源绑定情况,贴出来大家一起分析
有时候耗时太长,服务器都连不上了,只能重启了
资源绑定情况在最上面
你到集群的Dashboard 监控可视化页面上,看看问题时段里的SQL语句分析和慢查询情况,把截图贴上来
dba-kit
(张天师)
15
看下资源组的监控,是不是当时资源组的token已经被用完了?
1 个赞
dba-kit
(张天师)
16
当资源组token耗尽时候,一些小查询因为获取不到token,确实执行时间会变长
有猫万事足
17
能看到ru_comsumption=0.
如果不是资源组和用户绑定有问题,那可能就是像楼上说的那样。资源组的ru用完了,实在没ru给他了。导致等待时间巨长。
看看执行计划里面是否有具体的信息。
如果token没有了,那理论上是不会执行sql的,cpu也不会占用这么多吧?
之前有遇到过token用完的情况,耗时也很长,但是不会出现卡死,我把资源组绑定取消再重新绑就正常了