TiDB 软件和硬件环境建议配置

TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和运行在 Intel 架构服务器环境、ARM 架构的服务器环境及主流虚拟化环境,并支持绝大多数的主流硬件网络。作为一款高性能数据库系统,TiDB 支持主流的 Linux 操作系统环境。

操作系统及平台要求

操作系统支持的 CPU 架构
Red Hat Enterprise Linux 8.4 及以上的 8.x 版本
  • x86_64
  • ARM 64
  • Red Hat Enterprise Linux 7.3 及以上的 7.x 版本
  • CentOS 7.3 及以上的 7.x 版本
  • x86_64
  • ARM 64
Amazon Linux 2
  • x86_64
  • ARM 64
Rocky Linux 9.1 及以上的版本
  • x86_64
  • ARM 64
麒麟欧拉版 V10 SP1/SP2
  • x86_64
  • ARM 64
统信操作系统 (UOS) V20
  • x86_64
  • ARM 64
openEuler 22.03 LTS SP1
  • x86_64
  • ARM 64
macOS 12 (Monterey) 及以上的版本
  • x86_64
  • ARM 64
Oracle Enterprise Linux 8 及以上的版本x86_64
Ubuntu LTS 20.04 及以上的版本x86_64
CentOS 8 Stream
  • x86_64
  • ARM 64
Debian 10 (Buster) 及以上的版本x86_64
Fedora 38 及以上的版本x86_64
openSUSE Leap 15.5 以上的版本(不包含 Tumbleweed)x86_64
SUSE Linux Enterprise Server 15x86_64

编译和运行 TiDB 所依赖的库

编译和构建 TiDB 所需的依赖库版本
Golang1.21 及以上版本
Rustnightly-2023-12-10 及以上版本
GCC7.x
LLVM13.0 及以上版本

运行时所需的依赖库:glibc(2.28-151.el8 版本)

Docker 镜像依赖

支持的 CPU 架构如下:

软件配置要求

中控机软件配置

软件版本
sshpass1.06 及以上
TiUP1.5.0 及以上

目标主机建议配置软件

软件版本
sshpass1.06 及以上
numa2.0.12 及以上
tar任意

服务器建议配置

TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器平台或者 ARM 架构的硬件服务器平台。对于开发、测试及生产环境的服务器硬件配置(不包含操作系统 OS 本身的占用)有以下要求和建议:

开发及测试环境

组件CPU内存本地存储网络实例数量(最低要求)
TiDB8 核+16 GB+磁盘空间要求千兆网卡1(可与 PD 同机器)
PD4 核+8 GB+SAS, 200 GB+千兆网卡1(可与 TiDB 同机器)
TiKV8 核+32 GB+SSD, 200 GB+千兆网卡3
TiFlash32 核+64 GB+SSD, 200 GB+千兆网卡1
TiCDC8 核+16 GB+SAS, 200 GB+千兆网卡1

生产环境

组件CPU内存硬盘类型网络实例数量(最低要求)
TiDB16 核+48 GB+SSD万兆网卡(2 块最佳)2
PD8 核+16 GB+SSD万兆网卡(2 块最佳)3
TiKV16 核+64 GB+SSD万兆网卡(2 块最佳)3
TiFlash48 核+128 GB+1 or more SSDs万兆网卡(2 块最佳)2
TiCDC16 核+64 GB+SSD万兆网卡(2 块最佳)2
监控8 核+16 GB+SAS千兆网卡1

网络要求

TiDB 作为开源一栈式实时 HTAP 数据库,其正常运行需要网络环境提供如下的网络端口配置要求,管理员可根据实际环境中 TiDB 组件部署的方案,在网络侧和主机侧开放相关端口:

组件默认端口说明
TiDB4000应用及 DBA 工具访问通信端口
TiDB10080TiDB 状态信息上报通信端口
TiKV20160TiKV 通信端口
TiKV20180TiKV 状态信息上报通信端口
PD2379提供 TiDB 和 PD 通信端口
PD2380PD 集群节点间通信端口
TiFlash9000TiFlash TCP 服务端口
TiFlash3930TiFlash RAFT 服务和 Coprocessor 服务端口
TiFlash20170TiFlash Proxy 服务端口
TiFlash20292Prometheus 拉取 TiFlash Proxy metrics 端口
TiFlash8234Prometheus 拉取 TiFlash metrics 端口
Pump8250Pump 通信端口
Drainer8249Drainer 通信端口
CDC8300CDC 通信接口
Monitoring9090Prometheus 服务通信端口
Monitoring12020NgMonitoring 服务通信端口
Node_exporter9100TiDB 集群每个节点的系统信息上报通信端口
Blackbox_exporter9115Blackbox_exporter 通信端口,用于 TiDB 集群端口监控
Grafana3000Web 监控服务对外服务和客户端(浏览器)访问端口
Alertmanager9093告警 web 服务端口
Alertmanager9094告警通信端口

磁盘空间要求

组件磁盘空间要求健康水位使用率
TiDB
  • 日志盘建议最少预留 30 GB。
  • v6.5.0 及以上版本默认启用了 Fast Online DDL 对添加索引等 DDL 操作进行加速(通过变量 tidb_ddl_enable_fast_reorg 控制)。如果业务中可能存在针对大对象的 DDL 操作,或需要使用 IMPORT INTO SQL 语句导入数据,推荐为 TiDB 准备额外的 SSD 磁盘空间(建议 100 GB+)。配置方式详见设置 TiDB 节点的临时空间
低于 90%
PD数据盘和日志盘建议最少各预留 20 GB低于 90%
TiKV数据盘和日志盘建议最少各预留 100 GB低于 80%
TiFlash数据盘建议最少预留 100 GB,日志盘建议最少预留 30 GB低于 80%
TiUP
  • 中控机:部署一个版本的 TiDB 集群占用不超过 1 GB 空间,部署多个版本集群所占用的空间会相应增加
  • 部署服务器(实际运行 TiDB 各组件的机器):TiFlash 占用约 700 MB 空间,其他组件(PD、TiDB、TiKV 等)各占用约 200 MB 空间。同时,部署过程会占用小于 1 MB 临时空间(/tmp)存放临时文件
不涉及
Ngmonitoring
  • Conprof:3 x 1 GB x 组件数量(表示每个组件每天占用约 1 GB,总共 3 天) + 20 GB 预留空间
  • Top SQL:30 x 50 MB x 组件数量(每个组件每天占用约 50 MB,总共 30 天)
  • Top SQL 和 Conprof 共享预留空间
不涉及

客户端 Web 浏览器要求

TiDB 提供了基于 Grafana 的技术平台,对数据库集群的各项指标进行可视化展现。采用支持 Javascript 的微软 Edge、Apple Safari、Google Chrome、Mozilla Firefox 的较新版本即可访问监控入口。

TiFlash 存算分离架构的软硬件要求

上面的 TiFlash 软硬件要求是针对存算一体架构的。从 v7.0.0 开始,TiFlash 支持存算分离架构,该架构下 TiFlash 分为 Write Node 和 Compute Node 两个角色,对应的软硬件要求如下:

  • 软件:与存算一体架构一致,详见操作系统及平台要求
  • 网络端口:与存算一体架构一致,详见网络要求
  • 磁盘空间:
    • TiFlash Write Node:推荐 200 GB+,用作增加 TiFlash 副本、Region 副本迁移时向 Amazon S3 上传数据前的本地缓冲区。此外,还需要一个与 Amazon S3 兼容的对象存储。
    • TiFlash Compute Node:推荐 100 GB+,主要用于缓存从 Write Node 读取的数据以提升性能。Compute Node 的缓存可能会被完全使用,这是正常现象。
  • CPU 以及内存等要求参考下文。

开发及测试环境

组件CPU内存本地存储网络实例数量(最低要求)
TiFlash Write Node16 核+32 GB+SSD, 200 GB+千兆网卡1
TiFlash Compute Node16 核+32 GB+SSD, 100 GB+千兆网卡0(参见下文“注意”说明)

生产环境

组件CPU内存硬盘类型网络实例数量(最低要求)
TiFlash Write Node32 核+64 GB+SSD, 200 GB+万兆网卡(2 块最佳)2
TiFlash Compute Node32 核+64 GB+SSD, 100 GB+万兆网卡(2 块最佳)0(参见下文“注意”说明)