请教资源隔离问题

在我的场景中,涉及到大量的聚合类查询,但是发现这类 SQL 的磁盘扫描很少,需要消耗大量的内存和cpu,而对这块儿的限制手段比较少。图中我发现对 io 的限制是走 RU 的,但是对 cpu 和内存的聚合类查询不走,请教各位对这种场景有什么建议吗?

附加信息:
1 tidb 7.5.4
2 这个表已经加入到 tiflash 中,但优化器选择的是 TiKV,可能是带 where 过滤出来的结果集较小,所以优化器认为代价更优

SELECT
SUM(field1) AS metric1,
SUM(field2) AS metric2,
ROUND(SUM(field3), 2) AS metric3,
field4,
field5,
‘[REDACTED]’ AS field6,
field7,
‘[REDACTED]’ AS field8,
field9,
‘[REDACTED]’ AS field10,
‘[REDACTED]’ AS field11,
‘[REDACTED]’ AS field12,
field13
FROM
table_x
WHERE
field14 = ‘[REDACTED]’
AND field15 >= ‘[REDACTED]’
AND field15 <= ‘[REDACTED]’
GROUP BY
field7,
field9,
field11,
field12,
field4,
field13

这里问题是指 RU 限制不住消耗 tidb cpu 高的 sql 么?

是的,cpu 和 内存限制不住

也就是 cpu 和内存使用很多。。。但是 tidb RU 评估其实并不高?

1 个赞

explain analyze 看看执行计划里的RU消耗情况呢

1 个赞

RU 评估 300w,我限制成了 1w,看样子限制不住

Resource Control 现在不能管理 tidb-server,就是 RU 只算 TiKV 的开销。

看看 Resource control 的监控面板呢

目前 RU 只会考虑存储层面的资源,中长期来看可能也不会考虑 tidb-server 这一层。
是因为TiDB 内的资源限制存在一些技术挑战,在 TiDB bound 的场景下还没法很好的控制。 中期看,主要利用 独占TiDB+弹性 在 next-gen 上隔离 TiDB bound 的场景