TiDB的简单介绍以及进行资源限制的方式与方法

tidb,简单,介绍,以及,进行,资源,限制,方式,方法 · 浏览次数 : 68

小编点评

**TiDB 简要介绍** TiDB 是一个分布式关系型数据库,它提供以下关键特性: * **可水平扩展:**通过将数据水平分片存储在多个节点上,支持超大数据集和高并发读写操作。 * **ACID 事务特性:**提供一致性和可靠性,确保数据的完整性和可靠性。 * **分布式架构:**采用分布式架构,通过将数据分散到多个节点上,提高性能和可用性。 * **分布式共享存储:**使用三个核心组件(TiDB Server、TiKV 和 PD)提供高性能、高可用性和可扩展的存储。 * **高级特性:**提供分布式 SQL 查询优化器、自动化水平扩展、副本数据自动修复等功能。 **资源限制方式和方法** 为了确保 TiDB 的性能和可用性,可以进行以下资源限制: * **max-procs:**控制 CPU 的核心数量。 * **block-cache.capacity:**控制块缓存的大小。 * **readpool.unified.max-thread-count:**控制读取线程的并发数量。 * **raftstore.apply-pool-size:**控制raftstore 的内存使用量。 * **memory-quota:**设置对内存的限制。 **部署方式** TiDB 可以通过以下方式进行部署: * **单个服务器部署:**建议使用 3 个 PD、3 个 TiDB 和 3 个 TiKV。 * **混布部署:**建议至少部署到 3 个不同的硬盘上,以提高性能和安全性。

正文

TiDB的简单介绍以及进行资源限制的方式与方法


TiDB的简介

TiDB是一个分布式数据库, 简介为: 

TiDB 是一个开源的分布式关系型数据库,它兼具了分布式数据库的水平扩展性和传统关系型数据库的 ACID 事务特性。
TiDB 最初由 PingCAP 公司开发,并于 2015 年开源发布。创始人自己开发发布过 codis redis分布式中间件. 在redis cluster发布之前非常流行. 

TiDB 的设计目标是解决传统关系型数据库在大规模数据集、高并发读写和高可用性方面的挑战。
它采用了分布式架构,通过将数据水平分片存储在多个节点上,以支持数据的水平扩展。
同时,TiDB 采用了分布式事务协议以保证 ACID 事务的一致性和可靠性。

与传统数据库不同的是,TiDB 采用了分布式共享存储架构,其中包括了三个核心组件:

TiDB Server:负责接收和处理 SQL 请求,处理连接管理、查询优化、执行计划等任务。
TiKV:是一种分布式 Key-Value 存储引擎,负责存储数据和处理事务。它以水平分片的方式存储数据,并提供高度可用性和一致性的保证。
PD(Placement Driver):是 TiDB 中的元数据管理模块,负责集群的拓扑管理、数据的分片调度和故障自动处理等。

TiDB 还提供了一些高级特性,如分布式 SQL 查询优化器、自动化水平扩展、副本数据自动修复、在线数据迁移等。
此外,TiDB 还支持使用一些常见的 SQL 方言(如 MySQL、PostgreSQL)的语法和协议,以便现有应用可以无缝迁移到 TiDB 上。

总的来说,TiDB 是一个以分布式架构为基础的开源关系型数据库,具备可水平扩展、高性能、高可用性和 ACID 事务特性等优势,
适用于大规模数据存储和高并发读写的场景。

另外TiDB还有一个 TiFlash 的组件作为OLAP的扩展特性. 
TiFlash fork了 ClickHouse 的代码, 并且与TiKV的raft 日志深度集成
可以自己从TiKV里面获取数据库变化数据, 然后从行存转换为列存. 

TiDB的部署方式

TiDB建议较高的硬件配置进行部署. 

并且TiDB-TiKV-TiFlash 不建议混布,会出现比较严重的资源争用. 

建议至少3个PD, 三个TiDB, 三个TiKV 并且最小的副本数建议设置为3 
不建议单副本运行 会出现很严重的数据丢失的风险. 

TiFlash 可以部署单节点, 并且使用单副本. 
TiFlash 的数据都是来自于TiKV, 副本丢失后可以从Tikv中再次读取

非常不建议 TiKV和TiFlash以及他们互相部署到同一块硬盘上面
建议至少部署到不同的硬盘, 一方面保证性能, 另一方面保证数据安全性. 

混布时的资源限制

TiDB默认是单服务器单独部署一个role一个node
所以他会最大化的使用机器的资源
如果是混布, 会导致非常严重的资源争用,大查询时会立即导致系统宕机. 
所以需要进行一下资源限制.
建议方式:
tiup cluster edit-config xxxxtidb
建议在
server_configs: 下面进行全局修改. 一个范例为:
server_configs:
  tidb:
    performance.max-procs: 32
  tikv:
    raftstore.apply-pool-size: 16
    readpool.unified.max-thread-count: 16
    storage.block-cache.capacity: 64G
  pd:
    replication.enable-placement-rules: true
    replication.location-labels:
    - host
  tidb_dashboard: {}
  tiflash:
    performance.max-procs: 24
    performance.memory-quota: 128G

结果也比较简单, 可以明确看出来
max-procs 限制CPU的多少
memory 后者是block-cache 限制内存的大小. 

TiKV通过
    raftstore.apply-pool-size: 16
    readpool.unified.max-thread-count: 16
方式限制CPU的使用. 

与TiDB的简单介绍以及进行资源限制的方式与方法相似的内容:

TiDB的简单介绍以及进行资源限制的方式与方法

TiDB的简单介绍以及进行资源限制的方式与方法 TiDB的简介 TiDB是一个分布式数据库, 简介为: TiDB 是一个开源的分布式关系型数据库,它兼具了分布式数据库的水平扩展性和传统关系型数据库的 ACID 事务特性。 TiDB 最初由 PingCAP 公司开发,并于 2015 年开源发布。创始人

[转帖]TIDB - TIDB集群的扩容和缩容及TIUP指令说明

一、TIUP工具简介 前面介绍了使用TIUP搭建TIDB集群,本篇文章详细介绍下使用TIUP对集群进行扩容和缩容。 在面对双十一这种流量突峰的场景,我们平常的TIDB集群有可能承受不住,因此需要提前进行扩容,例如增加tidb-server,以增加TIDB的计算能力,增加tikv-server,增加T

[转帖]带你重走 TiDB TPS 提升 1000 倍的性能优化之旅

https://tidb.net/blog/29074d86#TiDB%20%E6%80%A7%E8%83%BD%E5%92%8C%E7%A8%B3%E5%AE%9A%E6%80%A7%E7%9A%84%E6%8C%91%E6%88%98 今天我们来聊一下数据库的性能优化,第一部分简单介绍一下性能优

tikv-ctl的简单学习

# tikv-ctl的简单学习 ## 摘要 ``` 最近在学习使用 tidb. 有一个场景,单独使用了tikv作为键值对的数据库. 但是比较不幸.总是出现宕机的情况 因为这个环境是单独使用tikv 二进制进行安装的 没有grafana和dashboard的界面. 比较难以处理. 只能想着使用tikv

极简版 haproxy的搭建步骤

## 背景 ``` 发现四层nginx的代理报错. 然后想着换用一下haproxy的配置. 早些时候 看过tidb的一些最佳时间, 这里简单整理一下. ``` ## 下载 ``` https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-2.8.

[转帖]tidb-系统内核调优及对比

一、背景 验证系统调优对性能的影响,用sysbench做了一些简单的测试,具体调整方法可见官方文档 二、特殊说明 1.透明大页查看 # 查看透明大页是否开启,[]在always处表示开启,[]在never处表示关闭 cat /sys/kernel/mm/transparent_hugepage/en

[转帖]关系模型到 Key-Value 模型的映射

https://cn.pingcap.com/blog/tidb-internal-2 在这我们将关系模型简单理解为 Table 和 SQL 语句,那么问题变为如何在 KV 结构上保存 Table 以及如何在 KV 结构上运行 SQL 语句。 假设我们有这样一个表的定义: CREATE TABLE

[转帖]TiDB的tikv节点的压缩算法

简介:TiDB的tikv节点实用的RocksDB,RocksDB的默认压缩算法为:[no:no:lz4:lz4:lz4:zstd:zstd] RocksDB 每一层数据的压缩方式,可选的值为:no,snappy,zlib,bzip2,lz4,lz4hc,zstd。 RocksDB6层的压缩为:[no

TiDB简述及TiKV的数据结构与存储

本文主要从TiDB的各类组件为起点,了解它的基础架构,并重点分析它在存储架构方面的设计,探究其如何组织数据,Table中的每行记录是如何在内存和磁盘中进行存储的。

TiDB与MySQL的SQL差异及执行计划简析

TiDB作为NewSQL,其在对MySQL(SQL92协议)的兼容上做了很多,MySQL作为当下使用较广的事务型数据库,在IT界尤其是互联网间使用广泛,那么对于开发人员来说,1)两个数据库产品在SQL开发及调优的过程中,都有哪些差异?在系统迁移前需要提前做哪些准备? 2)TiDB的执行计划如何查看,如何SQL调优? 本文做了一个简要归纳,欢迎查阅交流。