重要
你正在查看 TiDB v8.4 (DMR ) 的文档。PingCAP 不提供基于 v8.4 的 bug 修复版本,如有 bug,会在后续版本中修复。如无特殊需求,建议使用 TiDB 数据库的最新 LTS 版本 。
TiDB 软件和硬件环境建议配置 TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和运行在 Intel 架构服务器环境、ARM 架构的服务器环境及主流虚拟化环境,并支持绝大多数的主流硬件网络。作为一款高性能数据库系统,TiDB 支持主流的 Linux 操作系统环境。
操作系统及平台要求 操作系统 支持的 CPU 架构 Red Hat Enterprise Linux 8.4 及以上的 8.x 版本 Amazon Linux 2 Amazon Linux 2023 Rocky Linux 9.1 及以上的版本 麒麟欧拉版 V10 SP1/SP2 统信操作系统 (UOS) V20 openEuler 22.03 LTS SP1/SP3 macOS 12 (Monterey) 及以上的版本 Oracle Enterprise Linux 8 及以上的版本 x86_64 Ubuntu LTS 20.04 及以上的版本 x86_64 CentOS 8 Stream Debian 10 (Buster) 及以上的版本 x86_64 Fedora 38 及以上的版本 x86_64 openSUSE Leap 15.5 以上的版本(不包含 Tumbleweed) x86_64 SUSE Linux Enterprise Server 15 x86_64
注意
TiDB 只支持 Red Hat 兼容内核 (RHCK) 的 Oracle Enterprise Linux,不支持 Oracle Enterprise Linux 提供的 Unbreakable Enterprise Kernel。 根据 CentOS Linux EOL ,CentOS Linux 7 的上游支持已于 2024 年 6 月 30 日终止。从 v8.4.0 版本开始,TiDB 已结束对 CentOS 7 的支持,建议使用 Rocky Linux 9.1 及以上的版本。CentOS Linux 8 的上游支持已于 2021 年 12 月 31 日终止,但 CentOS 将继续提供对 CentOS Stream 8 的支持。 根据 Red Hat Enterprise Linux Life Cycle ,Red Hat Enterprise Linux 7 的 Maintenance Support 已于 2024 年 6 月 30 日终止。从 v8.4.0 版本开始,TiDB 已结束对 Red Hat Enterprise Linux 7 的支持,建议使用 Rocky Linux 9.1 及以上的版本。 TiDB 将不再支持 Ubuntu 16.04。强烈建议升级到 Ubuntu 18.04 或更高版本。 对于以上表格中所列操作系统的 32 位版本,TiDB 在这些 32 位操作系统以及对应的 CPU 架构上不保障 可编译、可构建以及可部署,或 TiDB 不主动适配这些 32 位的操作系统。 以上未提及的操作系统版本也许可以 运行 TiDB,但尚未得到 TiDB 官方支持。 从 v8.4.0 开始,TiDB 依赖 glibc 2.28。如果 glibc 版本不满足要求,建议使用上述表格中支持的操作系统,或将操作系统升级到支持 glibc 2.28 的版本。 编译和运行 TiDB 所依赖的库 编译和构建 TiDB 所需的依赖库 版本 Golang 1.23 及以上版本 Rust nightly-2023-12-28 及以上版本 GCC 7.x LLVM 17.0 及以上版本
运行时所需的依赖库:glibc(2.28-151.el8 版本)
Docker 镜像依赖 支持的 CPU 架构如下:
软件配置要求 中控机软件配置 软件 版本 sshpass 1.06 及以上 TiUP 1.5.0 及以上
目标主机建议配置软件 软件 版本 sshpass 1.06 及以上 numa 2.0.12 及以上 tar 任意
服务器建议配置 TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器平台或者 ARM 架构的硬件服务器平台。对于开发、测试及生产环境的服务器硬件配置(不包含操作系统 OS 本身的占用)有以下要求和建议:
开发及测试环境 组件 CPU 内存 本地存储 网络 实例数量(最低要求) TiDB 8 核+ 16 GB+ 磁盘空间要求 千兆网卡 1(可与 PD 同机器) PD 4 核+ 8 GB+ SAS, 200 GB+ 千兆网卡 1(可与 TiDB 同机器) TiKV 8 核+ 32 GB+ SSD, 200 GB+ 千兆网卡 3 TiFlash 32 核+ 64 GB+ SSD, 200 GB+ 千兆网卡 1 TiCDC 8 核+ 16 GB+ SAS, 200 GB+ 千兆网卡 1
注意
验证测试环境中的 TiDB 和 PD 可以部署在同一台服务器上。 如进行性能相关的测试,避免采用低性能存储和网络硬件配置,防止对测试结果的正确性产生干扰。 TiKV 的 SSD 盘推荐使用 NVME 接口以保证读写更快。 如果仅验证功能,建议使用 TiDB 数据库快速上手指南 进行单机功能测试。 从 v6.3.0 开始,在 Linux AMD64 架构的硬件平台部署 TiFlash 时,CPU 必须支持 AVX2 指令集。确保命令 grep avx2 /proc/cpuinfo
有输出。而在 Linux ARM64 架构的硬件平台部署 TiFlash 时,CPU 必须支持 ARMv8 架构。确保命令 grep 'crc32' /proc/cpuinfo | grep 'asimd'
有输出。通过使用向量扩展指令集,TiFlash 的向量化引擎能提供更好的性能。 生产环境 组件 CPU 内存 硬盘类型 网络 实例数量(最低要求) TiDB 16 核+ 48 GB+ SSD 万兆网卡(2 块最佳) 2 PD 8 核+ 16 GB+ SSD 万兆网卡(2 块最佳) 3 TiKV 16 核+ 64 GB+ SSD 万兆网卡(2 块最佳) 3 TiFlash 48 核+ 128 GB+ 1 or more SSDs 万兆网卡(2 块最佳) 2 TiCDC 16 核+ 64 GB+ SSD 万兆网卡(2 块最佳) 2 监控 8 核+ 16 GB+ SAS 千兆网卡 1
注意
生产环境中的 TiDB 和 PD 可以部署和运行在同一台服务器上,如对性能和可靠性有更高的要求,应尽可能分开部署。 强烈建议分别为生产环境中的 TiDB、TiKV 和 TiFlash 配置至少 8 核的 CPU。强烈推荐使用更高的配置,以获得更好的性能。 TiKV 硬盘大小配置建议 PCIe SSD 不超过 4 TB,普通 SSD 不超过 1.5 TB。 如果你在云服务商(如 AWS、Google Cloud 或 Azure)上部署 TiDB 集群,建议 TiKV 节点使用云盘。在云环境中,TiKV 实例崩溃时,本地磁盘上的数据可能会丢失。 在部署 TiFlash 之前,请注意以下事项:
TiFlash 支持多盘部署 。 TiFlash 数据目录的第一块磁盘推荐用高性能 SSD 来缓冲 TiKV 同步数据的实时写入,该盘性能应不低于 TiKV 所使用的磁盘,比如 PCIe SSD。并且该磁盘容量建议不小于总容量的 10%,否则它可能成为这个节点的能承载的数据量的瓶颈。而其他磁盘可以根据需求部署多块普通 SSD,当然更好的 PCIe SSD 硬盘会带来更好的性能。 TiFlash 推荐与 TiKV 部署在不同节点,如果条件所限必须将 TiFlash 与 TiKV 部署在相同节点,则需要适当增加 CPU 核数和内存,且尽量将 TiFlash 与 TiKV 部署在不同的磁盘,以免互相干扰。 TiFlash 硬盘总容量大致为:整个 TiKV 集群的需同步数据容量 / TiKV 副本数 * TiFlash 副本数
。例如整体 TiKV 的规划容量为 1 TB、TiKV 副本数为 3、TiFlash 副本数为 2,则 TiFlash 的推荐总容量为 1024 GB / 3 * 2
。用户可以选择同步部分表数据而非全部,具体容量可以根据需要同步的表的数据量具体分析。 在部署 TiCDC 时,建议在大于 500 GB 的 PCIe SSD 磁盘上部署。
网络要求 TiDB 作为开源一栈式实时 HTAP 数据库,其正常运行需要网络环境提供如下的网络端口配置要求,管理员可根据实际环境中 TiDB 组件部署的方案,在网络侧和主机侧开放相关端口:
组件 默认端口 说明 TiDB 4000 应用及 DBA 工具访问通信端口 TiDB 10080 TiDB 状态信息上报通信端口 TiKV 20160 TiKV 通信端口 TiKV 20180 TiKV 状态信息上报通信端口 PD 2379 提供 TiDB 和 PD 通信端口 PD 2380 PD 集群节点间通信端口 TiFlash 9000 TiFlash TCP 服务端口 TiFlash 3930 TiFlash RAFT 服务和 Coprocessor 服务端口 TiFlash 20170 TiFlash Proxy 服务端口 TiFlash 20292 Prometheus 拉取 TiFlash Proxy metrics 端口 TiFlash 8234 Prometheus 拉取 TiFlash metrics 端口 CDC 8300 CDC 通信接口 Monitoring 9090 Prometheus 服务通信端口 Monitoring 12020 NgMonitoring 服务通信端口 Node_exporter 9100 TiDB 集群每个节点的系统信息上报通信端口 Blackbox_exporter 9115 Blackbox_exporter 通信端口,用于 TiDB 集群端口监控 Grafana 3000 Web 监控服务对外服务和客户端(浏览器)访问端口 Alertmanager 9093 告警 web 服务端口 Alertmanager 9094 告警通信端口
磁盘空间要求 组件 磁盘空间要求 健康水位使用率 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 Node 16 核+ 32 GB+ SSD, 200 GB+ 千兆网卡 1 TiFlash Compute Node 16 核+ 32 GB+ SSD, 100 GB+ 千兆网卡 0(参见下文“注意”说明)
生产环境 组件 CPU 内存 硬盘类型 网络 实例数量(最低要求) TiFlash Write Node 32 核+ 64 GB+ SSD, 200 GB+ 万兆网卡(2 块最佳) 2 TiFlash Compute Node 32 核+ 64 GB+ SSD, 100 GB+ 万兆网卡(2 块最佳) 0(参见下文“注意”说明)
注意
TiFlash Compute Node 可以使用 TiUP 等部署工具快速扩缩容,扩缩容范围是 [0, +inf]
。