【 TiDB 版本】8.2.0
【测试过程】 先设置ru_per_sec为1000000 然后设置ru_per_sec=1000 ,2次分别128线程 oltp_read_only 测试。主要疑问是设置资源组时ru_per_sec选项所代表的意义似乎有点多没有统一的说明,另外就是token和ru_per_sec的关系。
CREATE RESOURCE GROUP `rg1` RU_PER_SEC=1000, PRIORITY=MEDIUM, QUERY_LIMIT=(EXEC_ELAPSED="5s" ACTION=KILL WATCH=SIMILAR DURATION="10m0s")
1、 首先看resource control监控中availiable ru ,可以确定RU_PER_SEC 设置了资源最的可用RU数量。
2、再ru_per_sec=1000时,监控显示的每秒消耗RU 在1k,但RU(max) 监控达到了3.76K,资源组未设置burstable,资源组能使用的RU也能突破RU_PER_SEC 限制? 如果突破限制为什么没像限制100万那样达到6w以上的每秒RU? RU(max) 如果是偶尔达到很高应该是那种比较明显的尖刺图形吧
3、 在官方文档 resource control 监控指标中可用RU解释是 “ RU 令牌桶内可用的 token” 这里似乎RU等同token了,是描述有误还是token和ru有某种关系可以互换使用?
4、按照第3条如果 可用ru=token数量那在RU_PER_SEC=100W时,可用RU数量在896k左右为什么还要想GAC申请token?
5、继续第4条 在RU_PER_SEC=100W和1000时向GAC每秒申请的的token数量差不多,为什么相差数据量级很大RU回填数量并没有导致LAC申请token数量增加?
6、RU是资源单位的抽象,这里的回填指的是什么?是否是指的token refill? 在doc design文档中 似乎没有提到RU refill这个词?
7、继续第6个问题,这里的回填数量指的是GAC的回填吧, LAC没有了只是去向GAC申请? burstable 是增加了向GAC申请token的数量?
8、官方文档里和design文档描述似乎有些出入 ,这里的定期重新配置本地令牌时调整本地可用令牌数量吧,这个数量是依据什么而定的?
9、 这里的sql request的cpu使用是指什么? sql request最后不都是转换为Kv request吗,这里指的是转换的消耗?