1. 首页 > 国产数据库教程 > TiDB教程 > 正文

tidb教程FG002-TiDB软硬件环境规划与选型

本文档详细介绍TiDB数据库的软硬件环境规划与选型,包括不同规模部署的硬件配置建议、操作系统要求、网络配置等内容。风哥教程参考TiDB官方文档部署安装相关内容,适合DBA和系统管理员在规划TiDB环境时使用。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 硬件基础概念

TiDB数据库的硬件组成包括:

  • 服务器:物理服务器或虚拟机
  • CPU:处理计算任务
  • 内存:存储临时数据
  • 存储:持久化数据
  • 网络:节点间通信
硬件选择原则:

  • 根据业务规模选择合适的硬件配置
  • 优先考虑性能和可靠性
  • 预留足够的扩展空间
  • 考虑成本效益比

1.2 软件基础概念

TiDB数据库的软件组成包括:

  • 操作系统:Linux发行版
  • TiDB组件:TiDB、TiKV、PD、TiFlash
  • 依赖软件:SSH、NTP等
  • 监控软件:Prometheus、Grafana

1.3 环境要求概述

TiDB环境要求主要包括:

  • 硬件要求:根据部署规模和业务负载确定
  • 软件要求:操作系统版本、依赖软件等
  • 网络要求:带宽、延迟、稳定性等
  • 安全要求:防火墙、访问控制等
风哥提示:环境规划是TiDB部署的基础,直接影响系统的性能和可靠性,需要认真对待。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 硬件规划建议

2.1.1 小规模部署(测试/开发)

# 小规模部署硬件建议

## TiDB节点
– CPU:8核风哥提示:
– 内存:32GB
– 存储:SSD 500GB
– 网络:千兆网卡

## TiKV节点
– CPU:8核
– 内存:32GB
– 存储:SSD 1TB
– 网络:千兆网卡

## PD节点
– CPU:4核
– 内存:8GB
– 存储:SSD 200GB
– 网络:千兆网卡

## TiFlash节点(可选)
– CPU:16核
– 内存:64GB
– 存储:SSD 2TB
– 网络:千兆网卡

2.1.2 中规模部署(生产)

# 中规模部署硬件建议

## TiDB节点
– CPU:16核
– 内存:64GB
– 存储:SSD 1TB
– 网络:万兆网卡

## TiKV节点
– CPU:16核
– 内存:64GB
– 存储:NVMe SSD 2TB
– 网络:万兆网卡

## PD节点
– CPU:8核
– 内存:16GB
– 存储:SSD 500GB
– 网络:万兆网卡

## TiFlash节点
– CPU:24核
– 内存:96GB
– 存储:NVMe SSD 4TB
– 网络:万兆网卡

2.1.3 大规模部署(核心业务)

# 大规模部署硬件建议

## TiDB节点
– CPU:32核
– 内存:128GB
– 存储:SSD 2TB
– 网络:万兆网卡

## TiKV节点
– CPU:32核
– 内存:128GB
– 存储:NVMe SSD 4TB
– 网络:万兆网卡

## PD节点
– CPU:8核
– 内存:16GB
– 存储:SSD 500GB
– 网络:万兆网卡

## TiFlash节点
– CPU:32核
– 内存:128GB
– 存储:NVMe SSD 8TB
– 网络:万兆网卡

2.2 软件规划建议

2.2.1 操作系统选择

推荐的操作系统:

  • Oracle Linux 9.3 / RHEL 9.3:最新版本,性能和安全性更好
  • Oracle Linux 8.x / RHEL 8.x:稳定版本,广泛使用
  • Oracle Linux 7.x / RHEL 7.x:长期支持版本
  • 国产麒麟操作系统 Kylin v10 SP3:国产化需求
  • 欧拉操作系统:开源国产操作系统

2.2.2 依赖软件

# 必要依赖软件
– SSH:用于节点间通信
– NTP:时间同步
– curl/wget:下载工具
– tar:解压工具学习交流加群风哥QQ113257174
– openssl:安全通信
– numactl:NUMA控制
– ntpdate:时间同步

# 推荐安装
$ yum install -y openssh-clients openssh-server ntp ntpdate curl wget tar openssl numactl

2.3 网络规划建议

2.3.1 网络架构

# 网络架构建议

## 小规模部署
– 单网络平面:业务和管理共用
– 带宽:千兆以上

## 中大规模部署
– 多网络平面:
– 业务网络:万兆以上
– 存储网络:万兆以上(建议独立)
– 管理网络:千兆以上

## 网络配置
– 所有节点在同一网段
– 网络延迟:节点间延迟 < 1ms - 网络带宽:节点间带宽 > 10Gbps
– 网络稳定性:无丢包、抖动小

2.3.2 端口规划

# 端口规划

## TiDB
– 业务端口:4000
– 状态端口:10080

## TiKV
– 服务端口:20160
– 状态端口:20180
– 监控端口:20291

## PD
– 客户端端口:2379
– 集群端口:2380

## TiFlash
– 服务端口:3930
– 状态端口:20292
– 监控端口:8234

## 监控组件
– Prometheus:9090
– Grafana:3000
– Alertmanager:9093

生产环境建议:网络规划是TiDB集群性能的关键因素,建议使用万兆网络,减少网络延迟。学习交流加群风哥QQ113257174

Part03-生产环境项目实施方案

3.1 硬件实施方案

3.1.1 服务器选型

# 服务器选型建议

## 品牌选择
– 主流厂商: Dell、HP、Lenovo、华为等
– 国产服务器:浪潮、曙光、华为等

## 配置示例(中规模)
– CPU:Intel Xeon Gold 6330 (16核32线程)
– 内存:64GB DDR4 ECC
– 存储:2×1TB NVMe SSD + 2×4TB SSD
– 网络:2×10Gbps网卡
– 电源:冗余电源
– 散热:冗余风扇

3.1.2 存储配置

# 存储配置建议

## TiKV存储
– 推荐:NVMe SSD
– 性能要求:IOPS > 100K,延迟 < 0.5ms - 容量计算:数据量 × 3(副本) × 1.5(预留) ## TiDB存储 - 推荐:SSD - 容量要求:500GB以上 ## PD存储 - 推荐:SSD - 容量要求:200GB以上 ## 监控存储 - 推荐:SSD - 容量要求:500GB以上

3.2 软件实施方案

3.2.1 操作系统安装

# 操作系统安装步骤

## 1. 安装Oracle Linux 8.5
– 选择最小化安装
– 分区建议:
– /boot:1GB
– /:剩余空间(建议50GB以上)
– swap:内存的1.5倍(最大8GB)

## 2. 系统更新
$ yum update -y

## 3. 禁用防火墙(生产环境建议配置规则)
$ systemctl stop firewalld
$ systemctl disable firewalld

## 4. 禁用SELinux
$ setenforce 0
$ sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

3.2.2 系统参数配置

# 系统参数配置

## 1. 关闭透明大页
$ echo never > /sys/kernel/mm/transparent_hugepage/enabled
$ echo never > /sys/kernel/mm/transparent_hugepage/defrag
$ echo “echo never > /sys/kernel/mm/transparent_hugepage/enabled” >> /etc/rc.local
$ echo “echo never > /sys/kernel/mm/transparent_hugepage/defrag” >> /etc/rc.local
$ chmod +x /etc/rc.local

## 2. 调整文件描述符
$ echo “* soft nofile 65536” >> /etc/security/limits.conf
$ echo “* hard nofile 65536” >> /etc/security/limits.conf

## 3. 调整网络参数
$ cat >> /etc/sysctl.conf << EOF net.core.somaxconn = 32768 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl = 15 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65535 fs.file-max = 65535 EOF $ sysctl -p

3.3 配置实施方案

3.3.1 主机名和IP规划

# 主机名和IP规划示例

## 节点规划
| 角色 | 主机名 | IP地址 | 说明 |
|——|——–|——–|——|
| TiDB-1 | fgedu-tidb-01.fgedu.net.cn | 192.168.1.101 | 业务节点1 |
| TiDB-2 | fgedu-tidb-02.fgedu.net.cn | 192.168.1.102 | 业务节点2 |
| TiKV-1 | fgedu-tikv-01.fgedu.net.cn | 192.168.1.103 | 存储节点1 |
| TiKV-2 | fgedu-tikv-02.fgedu.net.cn | 192.168.1.104 | 存储节点2 |
| TiKV-3 | fgedu-tikv-03.fgedu.net.cn | 192.168.1.105 | 存储节点3 |
| PD-1 | fgedu-pd-01.fgedu.net.cn | 192.168.1.106 | 调度节点1 |
| PD-2 | fgedu-pd-02.fgedu.net.cn | 192.168.1.107 | 调度节点2 |
| PD-3 | fgedu-pd-03.fgedu.net.cn | 192.168.1.108 | 调度节点3 |
| TiFlash-1 | fgedu-tiflash-01.fgedu.net.cn | 192.168.1.109 | 分析节点1 |
| TiFlash-2 | fgedu-tiflash-02.fgedu.net.cn | 192.168.1.110 | 分析节点2 |

## 配置主机名解析
$ cat >> /etc/hosts << EOF 192.168.1.101 fgedu-tidb-01.fgedu.net.cn 192.168.1.102 fgedu-tidb-02.fgedu.net.cn 192.168.1.103 fgedu-tikv-01.fgedu.net.cn 192.168.1.104 fgedu-tikv-02.fgedu.net.cn 192.168.1.105 fgedu-tikv-03.fgedu.net.cn 192.168.1.106 fgedu-pd-01.fgedu.net.cn 192.168.1.107 fgedu-pd-02.fgedu.net.cn 192.168.1.108 fgedu-pd-03.fgedu.net.cn 192.168.1.109 fgedu-tiflash-01.fgedu.net.cn 192.168.1.110 fgedu-tiflash-02.fgedu.net.cn EOF

3.3.2 时间同步配置

# 时间同步配置

## 1. 安装NTP
$ yum install -y ntp

## 2. 配置NTP服务器
$ cat > /etc/ntp.conf << EOF driftfile /var/lib/ntp/drift restrict default nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1 server ntp.aliyun.com iburst server time1.cloud.tencent.com iburst server time.windows.com iburst includefile /etc/ntp/crypto/pw keys /etc/ntp/keys EOF ## 3. 启动NTP服务 $ systemctl start ntpd $ systemctl enable ntpd ## 4. 验证时间同步 $ ntpstat $ ntpq -p

风哥提示:时间同步对于分布式系统至关重要,建议配置可靠的NTP服务器,确保所有节点时间一致。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 硬件选型案例

4.1.1 某互联网公司TiDB集群硬件配置

# 案例:某互联网公司TiDB集群

## 业务规模
– 日活用户:100万+
– 日增数据:50GB
– QPS:10万+

## 硬件配置

### TiDB节点(3台)
– CPU:Intel Xeon Gold 6330 (16核)
– 内存:64GB
– 存储:1TB SSD
– 网络:2×10Gbps

### TiKV节点(6台)
– CPU:Intel Xeon Gold 6330 (16核)
– 内存:64GB
– 存储:2×2TB NVMe SSD
– 网络:2×10Gbps

### PD节点(3台)
– CPU:Intel Xeon Gold 6230 (12核)
– 内存:16GB
– 存储:500GB SSD
– 网络:2×10Gbps

### TiFlash节点(2台)
– CPU:Intel Xeon Gold 6330 (24核)
– 内存:96GB
– 存储:4×2TB NVMe SSD
– 网络:2×10Gbps

## 性能表现
– 读写延迟:< 1ms - 峰值QPS:15万+ - 数据存储:500GB+

4.2 软件配置案例

4.2.1 操作系统优化配置

# 操作系统优化配置案例

## 1. 系统参数优化
$ cat > /etc/sysctl.d/tidb.conf << EOF # 网络参数 net.core.somaxconn = 32768 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl = 15 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65535 # 文件系统参数 fs.file-max = 655350 fs.aio-max-nr = 1048576 # 内存参数 vm.swappiness = 0 vm.overcommit_memory = 1 EOF $ sysctl -p /etc/sysctl.d/tidb.conf ## 2. 限制配置 $ cat > /etc/security/limits.d/tidb.conf << EOF * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 * soft core unlimited * hard core unlimited EOF

4.3 性能测试案例

4.3.1 硬件性能测试

# 硬件性能测试

## 1. CPU性能测试
$ sysbench cpu –cpu-max-prime=20000 run

## 2. 内存性能测试
$ sysbench memory –memory-block-size=1K –memory-total-size=100G –memory-access-mode=rnd run

## 3. 磁盘性能测试
$ fio –name=random-write –ioengine=libaio –rw=randwrite –bs=4k –direct=1 –size=1G –numjobs=4 –runtime=60 –group_reporting

## 4. 网络性能测试
$ iperf3 -s &
$ iperf3 -c 192.168.1.101 -t 60 -P 4

## 测试结果示例
# CPU测试
CPU speed: events per second: 10000.00

# 内存测试
Operations performed: 104857600 (1747626.67 ops/sec)

# 磁盘测试
IOPS: 120000, BW: 468.75 MB/s

# 网络测试
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-60.00 sec 23.5 GBytes 3.38 Gbits/sec 0

生产环境建议:在部署TiDB前,建议对硬件进行全面的性能测试,确保满足业务需求。from tidb视频:www.itpux.com

Part05-风哥经验总结与分享

5.1 环境规划最佳实践

TiDB环境规划最佳实践:

  • 硬件选型:根据业务规模选择合适的硬件配置,优先考虑NVMe SSD和万兆网络
  • 软件选择:使用推荐的操作系统版本,及时更新补丁
  • 网络规划:使用万兆网络,减少网络延迟,确保网络稳定性
  • 存储规划:根据数据量和性能要求选择合适的存储方案
  • 扩展性:预留足够的扩展空间,考虑未来业务增长
  • 可靠性:使用冗余组件,确保系统高可用

5.2 常见问题与解决方案

5.2.1 硬件选型常见问题

# 硬件选型常见问题

## 1. 存储性能不足
– 问题:TiKV节点IOPS不够,导致性能下降
– 解决方案:
– 更换为NVMe SSD
– 增加TiKV节点数量
– 优化存储参数

## 2. 网络延迟高
– 问题:节点间网络延迟高,影响集群性能
– 解决方案:
– 使用万兆网络
– 优化网络拓扑
– 减少网络设备层级

## 3. 内存不足
– 问题:TiDB或TiKV内存不足,导致OOM
– 解决方案:
– 增加内存容量
– 优化内存参数
– 限制并发连接数

5.2.2 软件配置常见问题

# 软件配置常见问题

## 1. 时间同步问题
– 问题:节点间时间不同步,导致集群异常
– 解决方案:
– 配置NTP服务器
– 定期检查时间同步状态
– 使用可靠的时间源

## 2. 系统参数不当
– 问题:系统参数配置不当,影响性能
– 解决方案:
– 按照官方建议配置系统参数
– 定期优化系统参数
– 监控系统性能指标

## 3. 防火墙配置
– 问题:防火墙阻止节点间通信
– 解决方案:
– 关闭防火墙或配置正确的规则
– 确保所有必要端口开放
– 测试节点间通信

TiDB环境技术发展趋势:

  • 硬件发展:更快的CPU、更大的内存、更高速的存储(如PCIe 5.0 SSD)
  • 软件优化:更好的操作系统支持、更智能的参数调优
  • 云原生:更好的容器化支持、Kubernetes集成
  • 自动化:智能硬件选型、自动环境配置
  • 绿色节能:更低的功耗、更高的能效比
风哥提示:随着技术的发展,TiDB的硬件和软件要求也在不断变化,建议关注官方文档的最新推荐配置。

持续优化:环境规划是一个持续的过程,需要根据业务需求和技术发展不断调整和优化。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息