TiDB 安装与性能测试实践(上)

网友投稿 238 2024-03-24



TIDB分布式数据库离线实施方案及相关测试(测试版)

第一部分 硬件资源

一、硬件资源

现有硬件资源环境统计如下

TiDB 安装与性能测试实践(上)

序号

IP

CPU

存储

内存

Hostname

描述信息

1

21.72.124.38

16核

300GB

46g

tidb

SQL 解析层,不存储数据

2

21.72.124.39

8核

300GB

15g

pd

管理模块,调度计算

3

21.72.124.40

16核

300GB

62g

tikv

分布式存储模块,存储数据

4

21.72.124.41

48核

300GB

125g

tiflash

列式存储,分析场景加速

5

21.72.124.42

16核

200GB

62g

ticdc

增量数据同步工具

6

21.72.124.43

8核

200GB

15g

localhost

管理节点

二、模块详解

1.TiDB Server

SQL 层,对外暴露 MySQL 协议的连接 endpoint,负责接受客户端的连接,执行 SQL 解析和优化,最终生成分布式执行计划。TiDB 层本身是无状态的,实践中可以启动多个 TiDB 实例,通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址,客户端的连接可以均匀地分摊在多个 TiDB 实例上以达到负载均衡的效果。TiDB Server 本身并不存储数据,只是解析 SQL,将实际的数据读取请求转发给底层的存储节点 TiKV(或 TiFlash)。

2.PD Server

PD (Placement Driver), 整个 TiDB 集群的元信息管理模块,负责存储每个 TiKV 节点实时的数据分布情况和集群的整体拓扑结构,提供 TiDB Dashboard 管控界面,并为分布式事务分配事务 ID。PD 不仅存储元信息,同时还会根据 TiKV 节点实时上报的数据分布状态,下发数据调度命令给具体的 TiKV 节点,可以说是整个集群的“大脑”。此外,PD 本身也是由至少 3 个节点构成,拥有高可用的能力。建议部署奇数个 PD 节点。

3.TiKV Server

负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 的 API 在 KV 键值对层面提供对分布式事务的原生支持,默认提供了 SI (Snapshot Isolation) 的隔离级别,这也是 TiDB 在 SQL 层面支持分布式事务的核心。TiDB 的 SQL 层做完 SQL 解析后,会将 SQL 的执行计划转换为对 TiKV API 的实际调用。所以,数据都存储在 TiKV 中。另外,TiKV 中的数据都会自动维护多副本(默认为三副本),天然支持高可用和自动故障转移。

PS:TiKV底层为RocksDB,多版本并发控制 (MVCC)

4.TiFlash

TiFlash 是一类特殊的存储节点。和普通 TiKV 节点不一样的是,在 TiFlash 内部,数据是以列式的形式进行存储,主要的功能是为分析型的场景加速。

5.TiCDC(非必须模块)

TiCDC 是一款 TiDB 增量数据同步工具,通过拉取上游 TiKV 的数据变更日志,TiCDC 可以将数据解析为有序的行级变更数据输出到下游。

6.Manager

第二部分  系统及软件资源

一、操作系统及对应软件

序号

软件或包

名称

版本号

1

操作系统版本

CentOS Linux release 7.8.2003(Core)

7.8

2

TiDB软件包

tidb-community-server-v6.5.2-linux-amd64.tar.gz

V6.5.2

3

TiDB工具包

tidb-community-toolkit-v6.5.2-linux-amd64.tar.gz

V6.5.2

4

编译和构建 TiDB 所需的依赖库

Golang

1.19

5

Rust  nightly-2022-07-31

6

GCC

7.X

7

LLVM

13.0

二、软件包说明

操作系统支持详见https://docs.pingcap.com/zh/tidb/v6.5/hardware-and-software-requirements

官方软件包和工具包下载:

https://cn.pingcap.com/product/#SelectProduct

依赖库(包)下载:

https://centos.pkgs.org/

第三部分  拓扑结构

一、官方架构图

二、物理结构图

说明:因最小化部署,每台服务器上部署了多个模块,此处模块名称是为区别每个模块的主节点而设置更改,无实际意义,正式环境每台服务器或多台服务器只能部署最多一个模块(管理节点除外)。

三、最小化节点部署模块分布详情

序号

IP

部署模块

1

21.72.124.38

TIDB\TIFLASH

2

21.72.124.39

PD\TIKV

3

21.72.124.40

PD

4

21.72.124.41

TIFLASH

5

21.72.124.42

PD\TIDB\TIKV\TICDC

6

21.72.124.43

TIKV\ALERTMANAGER\PROMETHEUS\GRAFANA

四、新增节点后扩容、缩容后模块分布详情

3PD \4TiDB \4TiKV \3TiFlash \1HA、manager

备注:A、B机房位于同城不同地点,直线距离约15公里

序号

IP

部署模块

CPU(C)

MEM(g)

Storge(GB)

机房

1

21.72.124.38

TiDB

16

46g

300

A

2

21.72.124.39

PD

8

15g

300

A

3

21.72.124.40

TiKV

16

62g

300

A

4

21.72.124.41

TiFlash

48

125g

300

A

5

21.72.124.42

TiCDC/HAproxy

16

62g

200

A

6

21.72.124.43

manager

8

15g

200

A

7

21.72.124.45

TiDB

8

15

200

A

8

21.72.124.46

TiDB

8

15

200

B

9

21.72.124.47

TiDB

8

15

200

B

10

21.72.124.48

PD

4

15

200

A

11

21.72.124.49

PD

4

15

200

B

12

21.72.124.50

TiKV

8

31

500

A

13

21.72.124.51

TiKV

8

31

500

B

14

21.72.124.52

TiKV

8

31

500

B

15

21.72.124.53

TiFlash

32

62

200

A

16

21.72.124.54

TiFlash

32

62

200

B

 17

预留

18

预留

19

预留

五、逻辑结构图

第四部分 TiDB及组件安装

一、基础环境检查

1.检查磁盘空间

命令:#df -h

生产环境官方建议

组件

硬盘类型

实例数量(最低要求)

TiDB

***

2

PD

***

3

TiKV

***

3

TiFlash

1 or more ***s

2

TiCDC

***

2

监控

SAS

1

2.检查内存

命令:

#free -g

生产环境官方建议

组件

内存

实例数量(最低要求)

TiDB

48 GB+

2

PD

16 GB+

3

TiKV

64 GB+

3

TiFlash

128 GB+

2

TiCDC

64 GB+

2

监控

16 GB+

1

3.检查CPU

命令:

#nproc

生产环境官方建议

组件

CPU

实例数量(最低要求)

TiDB

16 核+

2

PD

8 核+

3

TiKV

16 核+

3

TiFlash

48 核+

2

TiCDC

16 核+

2

监控

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:云原生数据库技术规范,解析云时代下的新挑战与机遇
下一篇:云原生数据库优势
相关文章