RU资源限制问题

【TiDB 使用环境】生产环境
【TiDB 版本】8.5.1
【操作系统】
【部署方式】
【集群数据量】
【集群节点数】
【问题复现路径】
【遇到的问题:问题现象及影响】
我给tidb账号配置了RU,并且RU配置为10000;但是从tidb的dashboard上看,有的sql使用的RU大小,还是明显的比我设置的要大很多,RU是对UPDATE操作不生效吗?

【其他附件:截图/日志/监控】

  • 优化 SQL 查询:检查是否有不必要的 UPDATE 操作,或者可以优化的查询,以减少数据量。
  • 调整 RU 限制:如果某个 SQL 的 RU 消耗确实较高,可以考虑增加该资源组的 RU 限制。
  • 使用流控机制:通过设置合理的 RU 限制,确保高优先级的 SQL 操作能够优先执行。
  • 监控与分析:通过 TiDB 的 Dashboard 和 Grafana 面板,监控 RU 的使用情况,找出消耗较高的 SQL 操作,并进行优化

额,现在问题是,我限制了RU,为何还会超过我设置的限制;由于这个账号是给开发环境用的(我们开发、测试、生产都在一套集群上),避免不了部分用户使用超出预期的sql,所以才限制了RU;我是想弄清楚,这个为啥限制不生效

为什么 Dashboard 上看到的 RU 使用超过设置的限额?

  • RU 限额是“速率限制”,即每秒允许消耗的 RU 数量。单条 SQL 的总 RU 消耗可能远超限额,但执行时间越长,平均速率才会受限。
  • 如果系统负载较低或资源充足,TiDB 允许短时间内“突发”超出限额(BURSTABLE 模式),这会导致单条 SQL 的瞬时 RU 消耗超过限额。
  • 资源组的配置中,如果开启了 BURSTABLE 模式,用户可以短时间内超过 RU 限额。

从你的截图中来看,BURSTABLE 模式是 Disable 的,另外你看下你的 RU 上的感叹号提示,看下是 Average RU 还是 Total RU, 如果是 Total RU 的话,那么平均下来也就 2000 多 RU 每秒,那算正常,如果是平均 RU,才算不正常。

我能理解你说的了,是我搞混了概念,RU是速率限制问题,时间越长,消耗的总RU越多;但是我还有个问题,这样限制了RU,当我执行这条SQL的时候,tidb的内存异常高,这是不是也侧面说明,我这个RU设置的还是不对,设置的太大了? :joy:

目前 RU 的限制主要针对存储层资源,暂时不包括 tidb-server 层的内存限制。可以参考这篇文章专栏 - 新特性解析丨TiDB 资源管控的设计思路与场景解析 | TiDB 社区


此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。