【 TiDB 使用环境】
测试环境
【 TiDB 版本】
v7.5.0
tiup playground 起的本地集群 1 tidb+1pd+1tikv,只是测试功能,不涉及性能测试。
【复现路径】
【遇到的问题:问题现象及影响】
测试预期目标:
前端任务和后台任务用的都是 default 资源组。
当一种任务被标记为后端任务时,TiKV 会动态地限制该任务的资源使用,以尽量避免此类任务在执行时对前台任务产生影响。 通过设置自动识别后端任务,并降低其资源消耗。
1.tiup启动本地集群,资源管控已开启。
mysql> show variables like ‘tidb_enable_resource_control’;
±-----------------------------±------+
| Variable_name | Value |
±-----------------------------±------+
| tidb_enable_resource_control | ON |
±-----------------------------±------+
1 row in set (0.01 sec)
TiKV 参数 resource-control.enabled
没有修改,使用的是默认值 true。
2.准备测试数据,使用lightning验证后台任务是否生效
tiup bench tpcc -H 127.0.0.1 -P 4000 --user app_oltp -D tpcc --warehouses 100 --threads 20 prepare
tiup dumpling -u root -h 127.0.0.1 -P 4000 -B tpcc --filetype sql -t 8 -o ./tpcc_data -r 200000 -F 256MiB
3. lightning导入,验证没有设置后台任务的情况
mysql> SELECT * FROM information_schema.resource_groups;
±---------±-----------±---------±----------±------------±-----------+
| NAME | RU_PER_SEC | PRIORITY | BURSTABLE | QUERY_LIMIT | BACKGROUND |
±---------±-----------±---------±----------±------------±-----------+
| default | UNLIMITED | MEDIUM | YES | NULL | NULL |
| rg_olap | 400 | MEDIUM | YES | NULL | NULL |
| rg_oltp | 1000 | HIGH | YES | NULL | NULL |
| rg_other | 100 | MEDIUM | NO | NULL | NULL |
±---------±-----------±---------±----------±------------±-----------+
4 rows in set (0.01 sec)
tiup tidb-lightning -config tidb-lightning.toml
4.导入完成,等待几分钟集群稳定后。删除导入的数据。
5.设置lightning导入为后台任务
mysql> ALTER RESOURCE GROUP default
BACKGROUND=(TASK_TYPES=‘lightning’);
Query OK, 0 rows affected (0.15 sec)
mysql> SELECT * FROM information_schema.resource_groups;
±---------±-----------±---------±----------±------------±-----------------------+
| NAME | RU_PER_SEC | PRIORITY | BURSTABLE | QUERY_LIMIT | BACKGROUND |
±---------±-----------±---------±----------±------------±-----------------------+
| default | UNLIMITED | MEDIUM | YES | NULL | TASK_TYPES=‘lightning’ |
| rg_olap | 400 | MEDIUM | YES | NULL | NULL |
| rg_oltp | 1000 | HIGH | YES | NULL | NULL |
| rg_other | 100 | MEDIUM | NO | NULL | NULL |
±---------±-----------±---------±----------±------------±-----------------------+
4 rows in set (0.01 sec)
tiup tidb-lightning -config tidb-lightning.toml
6.等待导入完成,观察资源消耗情况
7.结论:后台任务没有生效,无论是否设置后台任务,lightning消耗资源几乎一致,对前端任务影响还是比较大。
8.继续验证 其他场景,也有类似结论。
mysql> ALTER RESOURCE GROUP default
BACKGROUND=(TASK_TYPES=‘lightning,stats,ddl,br’);
Query OK, 0 rows affected (0.27 sec)
mysql> SELECT * FROM information_schema.resource_groups;
±---------±-----------±---------±----------±------------±------------------------------------+
| NAME | RU_PER_SEC | PRIORITY | BURSTABLE | QUERY_LIMIT | BACKGROUND |
±---------±-----------±---------±----------±------------±------------------------------------+
| default | UNLIMITED | MEDIUM | YES | NULL | TASK_TYPES=‘lightning,stats,ddl,br’ |
| rg_olap | 400 | MEDIUM | YES | NULL | NULL |
| rg_oltp | 1000 | HIGH | YES | NULL | NULL |
| rg_other | 100 | MEDIUM | NO | NULL | NULL |
±---------±-----------±---------±----------±------------±------------------------------------+
4 rows in set (0.01 sec)
1)ddl 通过 add index 后台任务,也是是否设置后台任务,没有优化。
2)stats 通过 analyze 一张3300万行的表,设置后台任务也没有优化,甚至还出现更加挤兑前台任务资源情况,导致前台任务可用资源急剧下降,如下图:
官网:
https://docs.pingcap.com/zh/tidb/stable/tidb-resource-control#管理后台任务
问题:
1.实际结果不符合预期,有哪些关键配置遗漏吗?
2.其他大佬有无测试过类似功能,是否有相同的现象,如何解决?