资源管控失效

【 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,请大佬指导

上面只是创建了一个资源组,还需要你绑定资源组到用户。

是不是有些用户绑的不是这个资源组,所以就不受你上面这个配置的限制。

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

这个语句排查一下它的慢查询情况,还有它所在租户(用户)的资源绑定情况,贴出来大家一起分析

nice! 7.5升级应该兼容吧

有时候耗时太长,服务器都连不上了,只能重启了
资源绑定情况在最上面

你到集群的Dashboard 监控可视化页面上,看看问题时段里的SQL语句分析和慢查询情况,把截图贴上来

web页面打不开,只能用命令行方式

端口映射出来呢?dashboard肯定要看的呀

看下资源组的监控,是不是当时资源组的token已经被用完了?

1 个赞

当资源组token耗尽时候,一些小查询因为获取不到token,确实执行时间会变长

能看到ru_comsumption=0.

如果不是资源组和用户绑定有问题,那可能就是像楼上说的那样。资源组的ru用完了,实在没ru给他了。导致等待时间巨长。
看看执行计划里面是否有具体的信息。

服务器策略是这样的

如果token没有了,那理论上是不会执行sql的,cpu也不会占用这么多吧?

之前有遇到过token用完的情况,耗时也很长,但是不会出现卡死,我把资源组绑定取消再重新绑就正常了