导读


OLTP vs OLTP 是否存在相互影响情况,包括业务层(TPS、QPS、duration); OLTP vs OLAP 是否存在相互影响情况,包括业务层(TPS、QPS、duration); OLAP vs OLAP 是否存在相互影响情况,包括业务层(TPS、QPS、duration)。

resource_control: memory_limit: 150G cpu_quota: 1600%

OLTP 类的业务特点是短小的 SQL 语句,考验的是数据库处理高并发量的能力,常用的模拟工具有 sysbench,tpcc 等工具;
OLAP 类的业务特点是计算型的 SQL 语句,考验的是数据库优化器的能力,常用的模拟工具有 tpch 等工具;
基于我们的验证目标(验证资源管控是否生效),那么无论是 TiDB, TiKV 的各种资源 (cpu,mem,network) 就不能打满,因为打满必定受到影响; 得到基线数据,基线数据是指无负载情况下的 qps 和 p95 响应延时,为了后续做对比; TiDB 的资源管控组和用户为强绑定关系,我们为每个用户都单独设置一个资源组,也就是 1 对 1 的对应关系,这样可以让单租户把资源吃满。




RU 管控方面,相同资源管控组的不同用户,在同时执行 SQL 时,不会超出资源管控所设置的最大 RU 值(超卖参数除外); 不同资源管控组的不同用户,在不同的 TiDB 计算节点上的 QPS 基本持平(有时还会超出基线数据),P95 相同; 不同资源管控组的不同用户,在相同的 TiDB 计算节点上会有相互影响的情况,大约会有 8% ~ 10% 的影响; 关于资源组的优先级,经测试不同资源管控组的优先级几乎没有差别( T5 场景); 如果两个不同的资源组运行在不同的计算节点则没有影响(最佳实践)。
当 OLTP 平稳运行时遭遇 OLAP 业务会产生抖动,具体抖动延时需要看 OLAP 业务的 SQL 语句造成的影响; 当 OLTP 和 OLAP 在相同计算节点上执行时,P95 会有 8% 的下降,总体可以接受; 当 OLTP 和 OLAP 在相同计算节点上执行时,并且分配给 OLAP 业务的 RU 较少(一般为 OLAP 业务的 1/5 ),P95 会有 20% 的下降; 当 OLTP 和 OLAP 在相同计算节点上执行时,OLAP 业务表现会有 20% 左右的衰减(不过感觉 AP 类业务多个几秒钟无所谓); 如果 AP 和 TP 类 SQL 分别运行在不同的 TiDB 计算节点上时,则影响最小(既做 AP 类资源限制又在计算层做资源隔离为最佳实践)。
当 OLAP 和 OLAP 在相同计算节点上执行时,查询效率会有下降(实测中发现过原来 300s 跑出的语句,时间翻倍); 从返回结果看 OLAP 的资源优先级在实测过程中 medium 和 low 的差别不大; 加入 TiFlash 后,OLAP 的 SQL 语句在相同与不同的计算同时执行时,耗时相差不大; 运维方面的问题:不确定 SQL 语句在 TiFlash 中占用了多少 RU; OLAP 的业务在不同的计算节点上的效率最高。

TiDB 7.1.0 LTS 特性解读丨关于资源管控 (Resource Control) 应该知道的 6 件事


Runaway Queries 管理:提升 TiDB 稳定性的智能引擎

文章转载自PingCAP,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。










