Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TiDB 资源管控的对撞测试以及最佳实践架构

TiDB 资源管控的对撞测试以及最佳实践架构

原创
作者头像
PingCAP
发布于 2024-07-04 10:12:39
发布于 2024-07-04 10:12:39
17500
代码可运行
举报
文章被收录于专栏:PingCAP的专栏PingCAP的专栏
运行总次数:0
代码可运行

导读

在现代数据库管理系统中,资源管控是优化系统性能、提高用户密度和降低成本的关键因素之一。TiDB 作为一个具有存算分离架构的分布式数据库,面临着在动态业务环境下如何高效管理资源的挑战。自TiDB 7.1 版本引入资源管控功能以来,社区通过大量测试验证了其在资源使用隔离上的有效性。然而,随着业务的不断发展和集群规模的变化(如扩容和缩容),如何评估 TiDB 的动态容量,以及构建何种架构才能最大化资源管控的能力,成为亟待解决的问题。

本文将从业务角度切入,通过对不同类型业务(OLTPOLAP)在资源管控下的表现进行详尽分析,探讨在动态发展模式下,如何优化TiDB 的资源管理策略。我们将深入研究同一计算节点和不同计算节点上的压力测试结果,揭示资源管控在不同业务类型之间的相互影响并提出最佳实践架构建议,以实现更稳定高效的系统性能。通过这篇文章,读者将了解到在实际运维中,如何通过精细的资源管控来提升TiDB 的整体表现和用户体验。

引言

TiDB 是一个存算分离的架构,资源管控对这种分离的架构来说实现确实有非常大的难度,TiDB 从 7.1 版本开始引入资源管控的概念,在社区也有不少伙伴测试,测试结果大部分在 RU 的隔离上得到了验证,资源管控在业务上带来的价值是利用提高用户密度的方式来降低成本,同时还可以通过资源管控的方式抑制不同类型的业务来避免集群抖动,但是随着我们业务在不断发展,用户在增加,集群的资源也在变化(缩容,扩容),在这种动态发展的模式下,如何评估我们的 TiDB 动态容量,以及什么架构才能发挥资源管控的最大能力是本文讨论的点,本文会从业务的角度作为切入点来反向观察集群的状态。

资源管控验证目标

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

环境介绍

最小化部署 3PD,3TiDB,3TiKV

TiDB 节点:为了公平 PD 和 TiDB 为混合部署,所有组件类如 Prometheus grafana alertmanager PD(L|UI)都放在一个 pd 机器上,让剩余的两个 TiDB 的计算节点负载相同

TiKV 节点:单机多实例部署,每个实例在部署 tikv 时都做了资源隔离,这样做的意义在于当 tikv 节点跑满时,最多用到 16c

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
resource_control:  memory_limit: 150G  cpu_quota: 1600%

实验设计

TiDB 是存算分离的分布式数据库,多种不同类别的 SQL 难免会集中到一个 tidb 的计算节点上,而数据库中我们分为 OLTP 类业务和 OLAP 类业务,在这里我想说明下这两种业务的区别

OLTP 类的业务特点是短小的 SQL 语句,考验的是数据库处理高并发量的能力,常用的模拟工具有 sysbench,tpcc 等工具; OLAP 类的业务特点是计算型的 SQL 语句,考验的是数据库优化器的能力,常用的模拟工具有 tpch 等工具;

综上所述,我们可以到如下集中测试的基本场景

压力来自相同的计算节点

image.png
image.png

压力来自不同的计算节点

image.png
image.png

再下来我们设计一下压测的样例,压测需要有如下的限制和数据

  1. 基于我们的验证目标(验证资源管控是否生效),那么无论是 tidb, tikv 的各种资源 (cpu,mem,network) 就不能打满,因为打满必定受到影响;
  2. 得到基线数据,基线数据是指无负载情况下的 qps 和 p95 响应延时,为了后续做对比;
  3. TiDB 的资源管控组和用户为强绑定关系,我们为每个用户都单独设置一个资源组,也就是 1 对 1 的对应关系,这样可以让单租户把资源吃满。

TiDB 租户和资源组对应关系

image.png
image.png

压测样例

压测过程和数据篇幅较长,可点击 https://tidb.net/blog/bc405c21 查看“压测过程”章节实验结论

实验结论

1. OLTP vs OLTP:

  1. RU 管控方面,相同资源管控组的不同用户,在同时执行 SQL 时,不会超出资源管控所设置的最大 RU 值(超卖参数除外);
  2. 不同资源管控组的不同用户,在不同的 TiDB 计算节点上的 QPS 基本持平(有时还会超出基线数据),P95 相同;
  3. 不同资源管控组的不同用户,在相同的 TiDB 计算节点上会有相互影响的情况,大约会有 8% ~ 10% 的影响;
  4. 关于资源组的优先级,经测试不同资源管控组的优先级几乎没有差别( T5 场景);
  5. 如果两个不同的资源组运行在不同的计算节点则没有影响(最佳实践)。

2. OLTP vs OLAP:

  1. 当 OLTP 平稳运行时遭遇 OLAP 业务会产生抖动,具体抖动延时需要看 OLAP 业务的 SQL 语句造成的影响;
  2. 当 OLTP 和 OLAP 在相同计算节点上执行时,P95 会有 8% 的下降,总体可以接受;
  3. 当 OLTP 和 OLAP 在相同计算节点上执行时,并且分配给 OLAP 业务的 RU 较少(一般为 OLAP 业务的 1/5 ),P95 会有 20% 的下降;
  4. 当 OLTP 和 OLAP 在相同计算节点上执行时,OLAP 业务表现会有 20% 左右的衰减(不过感觉 AP 类业务多个几秒钟无所谓);
  5. 如果 AP 和 TP 类 SQL 分别运行在不同的 TiDB 计算节点上时,则影响最小(既做 AP 类资源限制又在计算层做资源隔离为最佳实践)。

3. OLAP vs OLAP:

  1. 当 OLAP 和 OLAP 在相同计算节点上执行时,查询效率会有下降(实测中发现过原来 300s 跑出的语句,时间翻倍);
  2. 从返回结果看 OLAP 的资源优先级在实测过程中 medium 和 low 的差别不大;
  3. 加入 TiFlash 后,OLAP 的 SQL 语句在相同与不同的计算同时执行时,耗时相差不大;
  4. 运维方面的问题:不确定SQL 语句在 TiFlash 中占用了多少 RU;
  5. OLAP 的业务在不同的计算节点上的效率最高。

最佳实践架构

image.png
image.png

这个 TiDB 架构应该是我理解的最佳实践了,从实验数据我们可以看到,即使我们开启了资源管控,两种不同业务类型同时请求同一个计算节点时,对其他的用户也是有一些抖动的,而从运维层面来说,要么降低租户的 RU,要么在计算节点进行隔离,从架构的角度出发,计算资源用 VIP 隔离开来,来达到专机专用的目的,存储节点通过 RU 来进行限制 IO,两层保护对稳定性有正向收益。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通过 ProxySQL 在 TiDB 上实现 SQL 的规则化路由
作为一款 HTAP 数据库,TiDB 能同时处理来自用户端的 OLTP 在线业务与 OLAP 分析业务。针对分析类需求,优化器会自动将请求路由到列存的 TiFlash 节点;而对于在线请求,优化器会自动路由到行存 TiKV 请求。对于 HTAP 数据库,我们最关心的莫过于占用大量资源的分析类查询是否会影响到在线的 OLTP 业务,针对这个问题,TiDB 在物理层上对 TiKV 与 TiFlash 进行了隔离,很好的避免了这种情况。
PingCAP
2021/10/29
7050
TiDB 分布式数据库多业务资源隔离应用实践
随着 TiDB 在各行业客户中的广泛应用 ,特别是在多个业务融合到一套 TiDB 集群中的场景,各企业对集群内多业务隔离的需求日益增加。与此同时,TiDB 在多业务融合场景下的资源隔离方案日趋完善,详情可参考文章 《你需要什么样的资源隔离?丨 TiDB 资源隔离最佳实践》 。
PingCAP
2025/02/05
1100
TiDB 分布式数据库多业务资源隔离应用实践
TiDB 在茄子科技的应用实践及演进
茄子科技(海外 SHAREit Group)是一家全球化互联网科技公司,主要从事移动互联网软件研发与全球移动广告变现解决方案、跨境支付解决方案等互联网服务等业务。茄子快传(SHAREit)是茄子科技旗下的代表产品, 是一款一站式数字娱乐内容与跨平台资源分享平台,累计安装用户数近 24 亿。茄子科技作为一家出海企业,已经在东南亚、南亚、中东以及非洲等地区,打造了多款工具和内容的应用,并且在 Google Play 的下载榜上常年名列前茅。
PingCAP
2021/09/17
5330
TiDB 5.0 VS MySQL 8.0 性能对比测试
TiDB正式线上前,总是要对TiDB做个压测来为后续的业务接入做评估依旧;本次针对TiDB 5.0以及MySQL 8.0在同等规格配置下,性能做一个对比,尽管来说这么对比,可比性不是很强,但是起码能为后续业务的接入以及上线有一个理论依旧;
SEian.G
2021/09/17
7.3K2
TiDB v7.1.0 跨业务系统多租户解决方案
本文介绍了 TiDB 数据库的资源管控技术,并通过业务测试验证了效果。资源管控技术旨在解决多业务共用一个集群时的资源隔离和负载问题,通过资源组概念,可以限制不同业务的计算和 I/O 资源,实现资源隔离和优先级调度,提高系统利用率和稳定性。
PingCAP
2023/08/14
4520
TiDB v7.1.0 跨业务系统多租户解决方案
TiDB 在小米的应用实践
MIUI 是小米公司旗下基于 Android 系统深度优化、定制、开发的第三方手机操作系统,也是小米的第一个产品。MIUI 在 Android 系统基础上,针对中国用户进行了深度定制,在此之上孕育出了一系列的应用,比如主题商店、小米音乐、应用商店、小米阅读等。
PingCAP
2018/12/04
1.2K0
TiDB 数据库 HTAP 技术 摘要
TiDB 默认由优化器自动选择是否使用 MPP 模式, 你可以通过修改变量 tidb_allow_mpp 和 tidb_enforce_mpp 的值来更改选择策略。
早起的鸟儿有虫吃
2022/03/15
1.1K0
TiDB 数据库 HTAP 技术 摘要
【赵渝强老师】TiDB的体系架构
TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(Hybrid Transactional and Analytical Processing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(Online Transactional Processing)、OLAP(Online Analytical Processing)、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。
赵渝强老师
2025/04/09
1240
【赵渝强老师】TiDB的体系架构
金融企业区域集中库的设计构想和测试验证
本文探讨了金融企业区域集中库的设计构想和测试验证,包括架构设想、数据库整合场景测试及优势和使用设想。作者提出利用 TiDB 数据库产品集中建设区域集中库,解决 MySQL 存量节点的整合问题,实现部署的标准化、按需扩展和统一运维管理。文章详细介绍了测试内容和结果,强调了区域集中库在建设和运行成本、服务质量等方面的优势,并提出了相应的管理措施,为金融企业数据库架构提供了有价值的参考 。
PingCAP
2024/04/06
970
TiDB 在华泰证券的探索与实践
文章转载自公众号华泰证券数字科技。 原文链接:https://mp.weixin.qq.com/s/Hp-ZJLdvd3z2w9IJ_32NRw?scene=25#wechat_redirect 作者
PingCAP
2019/08/20
1.1K0
TiDB 7.1.0 LTS 特性解读丨关于资源管控 (Resource Control) 应该知道的 6 件事
TiDB 7.1.0 LTS 在前段时间发布,相信很多同学都已经抢先使用了起来,甚至都已然经过一系列验证推向了生产环境。面对 TiDB 7.1 若干重要特性,新 GA 的资源管控 (Resource Control) 是必须要充分理解、测试的一个重量级特性。对于常年奋斗在一线 DBA 岗位的我来说,学术方面的精进已经力不从心,大部分的时间都在强化“术”的方面,所以 TiDB 每更(新)必追,每个新 GA 的特性都要熟悉,这样当生产环境 TiDB 升级到目标版本后,才不至于手忙脚乱,新建 TiDB 集群后才能对新特性驾轻就熟。相信本文会给读者朋友们带来一些实质性的收获。言归正传,本文将围绕“资源管控”主题,详细说说关于 “资源管控” 您应该知道的 6 件事。
PingCAP
2023/09/21
3200
TiDB 7.1.0 LTS 特性解读丨关于资源管控 (Resource Control) 应该知道的 6 件事
月活超 1.1 亿,用户超 4 亿,你也在用的「知乎」是如何在超大规模 TiDB 集群上玩转多云多活的?来听听知乎代晓磊的答案!
代晓磊,知乎数据库负责人,同时也是 TiDB 社区北京地区组织者,一位有着 13 年数据库从业经验的数据库老兵,对数据库运维及 TiDB 有着丰富的实践经验。在“2024 新年围炉茶会”中,他分享了《TiDB 在知乎实践的那些事》话题,回顾了最近两年知乎 TiDB 实践的最新进展 ,以及对数据库未来发 展方向的个人观点,本文根据代晓磊老师的演讲实录进行整理。
PingCAP
2024/04/06
4100
【赵渝强老师】TiDB的行存引擎:TiKV
TiDB的存储架构分为TiKV和TiFlash。TiVK是行存引擎,主要用于OLTP场景;而TiFlash是列存引擎,主要用于OLAP场景。下面重点讨论一下TiDB的行存引擎:TiKV,它的体系架构如下图所示:
赵渝强老师
2025/04/12
680
【赵渝强老师】TiDB的行存引擎:TiKV
带你重走 TiDB TPS 提升 1000 倍的性能优化之旅
今天我们来聊一下数据库的性能优化,第一部分简单介绍一下性能优化的通用的方法,第二部分我们讲一个实际案例。
PingCAP
2021/12/07
1K0
TiDB安装简介
TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。
ha_lydms
2023/08/10
5980
TiDB安装简介
微众银行 TiDB HTAP 和自动化运维实践
本文根据微众银行资深数据库架构师黄蔚在 DevCon 2022 上的分享整理,主要讲述了微众银行对于 HTAP 架构的探索和实践情况,以及提升大规模分布式数据库运维效率的经验。
PingCAP
2023/02/06
6060
基于 TiDB 资源管控 + TiCDC 实现多业务融合容灾测试
随着金融行业的不断发展,多个业务系统的整合成为了趋势,分布式数据库的应用也愈发广泛。为了应对多业务融合带来的复杂性,金融机构需要在保障各业务系统高效运行的同时,确保 IT 系统的高可用性和稳定性。本文将介绍 TiDB 如何通过多租户资源管控与容灾技术,助力金融机构在分布式环境中实现高效的业务整合与容灾能力,并探讨 TiCDC 工具在跨区域数据同步中的应用。
PingCAP
2024/09/05
1350
数禾科技:资源成本降低 50%!用 TiDB 实现技术栈简化的实践和收益
在当今快速发展的金融科技领域,技术的创新与优化是企业保持竞争力的关键。数禾科技,作为一家以大数据和技术为驱动的智能零售金融解决方案提供商,始终致力于通过技术创新来提升业务效率和服务质量。其主要产品还呗 APP 激活用户已达 1.3 亿,累计交易金额突破 3100 亿元。随着业务的迅速扩展,数禾科技面临着日益复杂的技术栈挑战。如何在确保系统稳定性和数据处理能力的同时,简化技术架构并降低运维成本,成为数禾科技亟需解决的关键问题。
PingCAP
2025/01/17
1220
数禾科技:资源成本降低 50%!用 TiDB 实现技术栈简化的实践和收益
Tidb4.0五大核心功能 及 适应场景
TiDB是开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容、缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5.7协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(OnlineTransactionalProcessing)、OLAP(OnlineAnalyticalProcessing)、HTAP解决方案。
杨漆
2021/03/10
9120
Tidb4.0五大核心功能 及 适应场景
迈向企业级核心场景的 TiDB 5.0
随着 2021 年春天的来临和 PingCAP 年满 6 周岁纪念日的到来,TiDB 5.0 迎来正式 GA。经过近一年紧锣密鼓的开发和打磨,TiDB 5.0 成为迈向企业级核心场景的里程碑版本:TiDB 5.0 的性能和稳定性得到显著提升,从而具备更强大的 OLTP 金融级核心场景的服务能力;在原有 HTAP 引擎 TiFlash 的基础上引入 MPP 架构,TiDB 使得众多企业的实时/交互式 BI 成为现实,为高成长企业和数字化创新场景提供了一栈式的数据服务底座,加速带动 HTAP 进入更多大型企业的数字化场景。
PingCAP
2021/04/09
6390
迈向企业级核心场景的 TiDB 5.0
推荐阅读
相关推荐
通过 ProxySQL 在 TiDB 上实现 SQL 的规则化路由
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验