Skip to content

TiDB 硬件选择指南

硬件选择原则

业务需求优先

硬件选择应首先考虑业务需求:

  • 性能要求:根据 QPS、延迟、吞吐量等指标选择合适的硬件
  • 容量需求:根据数据量和增长速度估算存储容量
  • 高可用性要求:考虑节点冗余和故障恢复能力
  • 预算限制:在满足需求的前提下优化成本

组件差异化配置

TiDB 各组件对硬件的要求不同,应根据组件特性进行差异化配置:

  • TiDB Server:CPU 密集型,需要高性能 CPU
  • TiKV Server:IO 密集型,需要高速存储和充足内存
  • PD Server:内存密集型,需要充足内存和低延迟存储
  • TiFlash:分析型负载,需要大容量存储和多核 CPU

扩展性考虑

硬件选择应考虑未来扩展性:

  • 选择支持横向扩展的硬件架构
  • 预留一定的性能和容量余量
  • 考虑硬件升级的便利性
  • 采用标准化的硬件配置

可靠性要求

硬件选择应确保系统可靠性:

  • 选择可靠的硬件品牌和供应商
  • 配置 RAID 或分布式存储提高存储可靠性
  • 考虑电源、散热等基础设施的冗余
  • 选择经过验证的硬件配置

各组件硬件要求

TiDB Server

TiDB Server 是 SQL 处理引擎,主要负责接收和处理客户端请求,执行 SQL 解析、优化和执行。

硬件要求

配置项最低要求推荐配置高端配置
CPU8 核16-32 核32-64 核
内存16 GB32-64 GB64-128 GB
存储SSD,200 GBSSD,500 GBSSD,1 TB
网络千兆以太网万兆以太网25/40 GbE

配置建议

  • CPU 选择:优先选择高主频、多核的 CPU,如 Intel Xeon Gold 或 AMD EPYC 系列
  • 内存配置:内存大小应根据业务负载调整,建议内存与 CPU 核数比例为 2-4 GB/核
  • 存储配置:使用 SSD 存储 TiDB 日志和临时文件,提高 SQL 执行性能
  • 网络配置:对于高并发场景,建议使用万兆或更高速率的网络

TiKV Server

TiKV Server 是分布式 KV 存储引擎,主要负责数据存储和复制,是 TiDB 集群的核心组件。

硬件要求

配置项最低要求推荐配置高端配置
CPU8 核16-32 核32-64 核
内存32 GB64-128 GB128-256 GB
存储SSD,1 TBNVMe SSD,2-4 TBNVMe SSD,4-8 TB
网络千兆以太网万兆以太网25/40 GbE

配置建议

  • CPU 选择:选择多核 CPU,建议 CPU 核数与内存比例为 1:4-1:8
  • 内存配置:内存大小直接影响 TiKV 性能,建议至少 64 GB,对于大规模集群建议 128 GB 或更高
  • 存储配置:
    • 推荐使用 NVMe SSD,提供更低的延迟和更高的 IOPS
    • 单盘容量建议 2-4 TB,避免单盘容量过大导致故障恢复时间过长
    • 建议配置 RAID 0 或 JBOD,利用 TiKV 自身的复制机制保证数据可靠性
    • 存储容量规划:考虑数据副本数(默认 3 副本)、压缩比(约 30-50%)和预留空间(建议 30%)
  • 网络配置:TiKV 节点间需要频繁的数据复制和心跳通信,建议使用万兆或更高速率的网络

PD Server

PD Server 是集群管理器,主要负责集群拓扑管理、Region 调度和负载均衡。

硬件要求

配置项最低要求推荐配置高端配置
CPU4 核8-16 核16 核
内存8 GB16-32 GB32-64 GB
存储SSD,100 GBSSD,200-500 GBSSD,500 GB
网络千兆以太网万兆以太网万兆以太网

配置建议

  • CPU 选择:PD 对 CPU 要求不高,建议 8-16 核即可
  • 内存配置:PD 存储集群元数据,内存大小应根据集群规模调整,建议至少 16 GB
  • 存储配置:使用 SSD 存储 PD 数据,提高元数据访问速度
  • 网络配置:PD 与其他组件频繁通信,建议使用万兆网络
  • 部署建议:PD 节点数应为奇数(3、5 等),确保高可用性

TiFlash

TiFlash 是列式存储引擎,主要负责支持实时分析查询,与 TiKV 共享数据副本。

硬件要求

配置项最低要求推荐配置高端配置
CPU16 核32-64 核64-128 核
内存64 GB128-256 GB256-512 GB
存储SSD,2 TBNVMe SSD 或 HDD,4-8 TBNVMe SSD,8-16 TB
网络万兆以太网万兆以太网25/40 GbE

配置建议

  • CPU 选择:TiFlash 处理分析型查询,需要多核 CPU,建议 32 核以上
  • 内存配置:内存大小影响分析查询性能,建议至少 128 GB
  • 存储配置:
    • 可以使用 SSD 或 HDD,根据查询性能要求选择
    • 单盘容量建议 4-8 TB
    • 存储容量规划:考虑数据副本数(默认 2 副本)和压缩比(约 50-70%)
  • 网络配置:TiFlash 与其他组件频繁通信,建议使用万兆或更高速率的网络

不同规模集群硬件配置

小型集群(测试/开发环境)

适用于开发、测试或小规模生产环境,数据量小于 1 TB。

配置建议

组件节点数CPU内存存储网络
TiDB216 核32 GBSSD 500 GB万兆
TiKV316 核64 GBNVMe SSD 2 TB万兆
PD38 核16 GBSSD 200 GB万兆
TiFlash132 核128 GBNVMe SSD 4 TB万兆

中型集群(生产环境)

适用于中型生产环境,数据量 1-10 TB,QPS 10,000-100,000。

配置建议

组件节点数CPU内存存储网络
TiDB3-524-32 核64 GBSSD 1 TB万兆
TiKV6-1224-32 核128 GBNVMe SSD 4 TB万兆
PD316 核32 GBSSD 500 GB万兆
TiFlash2-448-64 核256 GBNVMe SSD 8 TB万兆

大型集群(大规模生产环境)

适用于大规模生产环境,数据量 10-100 TB,QPS 100,000+。

配置建议

组件节点数CPU内存存储网络
TiDB5-1032-64 核128 GBSSD 1 TB25/40 GbE
TiKV12-3032-64 核128-256 GBNVMe SSD 4-8 TB25/40 GbE
PD516 核32-64 GBSSD 500 GB万兆
TiFlash4-864-128 核256-512 GBNVMe SSD 8-16 TB25/40 GbE

存储选型建议

SSD vs HDD

存储类型优势劣势适用场景
SSD低延迟、高 IOPS、高吞吐量成本高、容量相对较小TiDB、PD、TiKV、TiFlash(高性能要求)
NVMe SSD更低延迟、更高 IOPS成本更高TiKV(核心存储)、TiFlash(高性能分析)
HDD成本低、容量大高延迟、低 IOPSTiFlash(大容量分析、成本敏感)

RAID 配置

RAID 级别优势劣势适用场景
RAID 0高性能、高容量无冗余,单点故障TiKV(依赖自身复制机制)、TiFlash
RAID 1高可靠性、读性能好成本高、容量利用率低PD(元数据存储)
RAID 5较好的可靠性和容量利用率写性能一般不推荐用于 TiDB 集群
RAID 10高可靠性、高性能成本高、容量利用率低TiDB(日志存储)

存储容量规划

存储容量计算公式:

总存储容量 = 原始数据量 × 副本数 ÷ 压缩比 × (1 + 预留空间比例)
  • 副本数:TiKV 默认 3 副本,TiFlash 默认 2 副本
  • 压缩比:TiKV 约 30-50%,TiFlash 约 50-70%
  • 预留空间比例:建议 30%,用于数据增长和 compaction

网络规划

网络架构

  • 建议使用分层网络架构:核心层、汇聚层、接入层
  • TiDB 集群内部网络:建议使用独立的万兆或更高速率网络
  • 客户端访问网络:根据业务需求配置,建议万兆以上
  • 监控和管理网络:建议与业务网络分离,提高安全性

网络设备

  • 交换机:建议使用支持万兆或更高速率的交换机,支持 VLAN 和 QoS
  • 网卡:建议使用 10 GbE 或更高速率的网卡,支持多队列
  • 网络线缆:使用高质量的网线和光纤,确保网络稳定性

网络优化

  • 配置合理的 MTU 值(建议 9000,即 Jumbo Frame)
  • 启用网络流量控制和 QoS
  • 优化网络中断处理(如开启 irqbalance)
  • 配置合理的 TCP 参数

云环境硬件选择

云服务器选型

云平台TiDB 推荐实例TiKV 推荐实例PD 推荐实例TiFlash 推荐实例
AWSm5.4xlargei3.4xlarger5.xlarger5.12xlarge
阿里云ecs.c6.4xlargeecs.i2g.4xlargeecs.r6.xlargeecs.r6.12xlarge
腾讯云S5.4XLARGE8IT5.4XLARGE32MEM3.2XLARGE16MEM3.12XLARGE96
华为云s6.4xlarge.4i3.4xlarge.8r6.2xlarge.4r6.12xlarge.4

云存储选型

  • 块存储:用于 TiDB、PD 和 TiKV 的本地存储

    • AWS:EBS io2 或 gp3
    • 阿里云:ESSD PL1 或 PL2
    • 腾讯云:SSD 云硬盘或增强型 SSD
    • 华为云:超高 IO 云硬盘
  • 对象存储:用于备份和归档

    • AWS:S3
    • 阿里云:OSS
    • 腾讯云:COS
    • 华为云:OBS

硬件验证与测试

硬件兼容性测试

在部署生产集群前,建议进行硬件兼容性测试:

  • 测试 TiDB 集群在目标硬件上的部署成功率
  • 验证各组件的基本功能是否正常
  • 检查硬件驱动和固件版本是否兼容

性能测试

进行性能测试,验证硬件是否满足业务需求:

  • 使用 Sysbench 或 TiDB Benchmark 进行基准测试
  • 测试 OLTP 和 OLAP 混合负载下的性能
  • 测试大规模数据导入和查询性能
  • 测试故障恢复和扩展能力

稳定性测试

进行长期稳定性测试,确保硬件在长时间运行下稳定可靠:

  • 进行 7×24 小时稳定性测试
  • 模拟各种故障场景,测试故障恢复能力
  • 监控硬件温度、功耗等指标

常见问题(FAQ)

Q1: TiKV 节点的存储应该使用 SSD 还是 HDD?

A1: 建议使用 SSD,特别是 NVMe SSD。TiKV 是 IO 密集型组件,SSD 提供的低延迟和高 IOPS 能显著提高 TiKV 的性能。对于大规模分析场景,可以考虑使用 HDD 作为 TiFlash 的存储。

Q2: 如何估算 TiKV 节点的存储容量?

A2: 可以使用以下公式估算:

TiKV 存储容量 = 原始数据量 × 3(副本数) ÷ 0.5(压缩比) × 1.3(预留空间)

例如,1 TB 原始数据需要的 TiKV 存储容量为:1 × 3 ÷ 0.5 × 1.3 = 7.8 TB。

Q3: PD 节点需要多少内存?

A3: PD 节点的内存需求取决于集群规模。对于小型集群(小于 100 个 TiKV 节点),16 GB 内存足够;对于中型集群(100-500 个 TiKV 节点),建议 32 GB 内存;对于大型集群(大于 500 个 TiKV 节点),建议 64 GB 或更多内存。

Q4: 云环境中如何选择实例类型?

A4: 云环境中选择实例类型时,应考虑:

  • TiDB:选择计算优化型实例,如 AWS m5 系列
  • TiKV:选择存储优化型实例,如 AWS i3 系列或阿里云 i2g 系列
  • PD:选择内存优化型实例,如 AWS r5 系列
  • TiFlash:选择内存优化型或计算优化型实例,如 AWS r5 或 c5 系列

Q5: 如何优化 TiDB 集群的网络性能?

A5: 可以通过以下方式优化网络性能:

  • 使用万兆或更高速率的网络
  • 配置 Jumbo Frame(MTU 9000)
  • 启用网络流量控制和 QoS
  • 优化 TCP 参数,如增大 TCP 缓冲区
  • 确保网络设备和线缆的质量
  • 将 TiDB 集群部署在同一可用区或地域,减少网络延迟