平凯数据库软件和硬件环境建议配置
平凯数据库作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和运行在 Intel 架构服务器环境、ARM 架构的服务器环境及主流虚拟化环境,并支持绝大多数的主流硬件网络。作为一款高性能数据库系统,平凯数据库支持主流的 Linux 操作系统环境。
操作系统及平台要求
在以下操作系统以及对应的 CPU 架构组合上,平凯数据库可满足企业级生产质量的要求,产品特性经过全面且系统化的验证:
操作系统 支持的 CPU 架构 Red Hat Enterprise Linux 8.4 及以上的 8.x 版本 - x86_64
- ARM 64
Rocky Linux 9.1 及以上的版本 - x86_64
- ARM 64
麒麟欧拉版 V10 SP1/SP2/SP3 - x86_64
- ARM 64
统信操作系统 (UOS) V20 - x86_64
- ARM 64
openEuler 22.03 LTS SP1/SP3 - x86_64
- ARM 64
在以下操作系统以及对应的 CPU 架构组合上,你可以编译、构建和部署平凯数据库,可使用 OLTP 和 OLAP 以及数据工具的基本功能。但是平凯数据库不保障企业级生产质量要求:
操作系统 支持的 CPU 架构 macOS 12 (Monterey) 及以上的版本 - x86_64
- ARM 64
Oracle Enterprise Linux 8 及以上的版本 x86_64 Ubuntu LTS 20.04 及以上的版本 x86_64 CentOS Stream 8 - x86_64
- ARM 64
Debian 10 (Buster) 及以上的版本 x86_64 Fedora 38 及以上的版本 x86_64 openSUSE Leap 15.5 以上的版本(不包含 Tumbleweed) x86_64 SUSE Linux Enterprise Server 15 x86_64 对于以上两个表格中所列操作系统的 32 位版本,平凯数据库在这些 32 位操作系统以及对应的 CPU 架构上不保障可编译、可构建以及可部署,或平凯数据库不主动适配这些 32 位的操作系统。
以上未提及的操作系统版本也许可以运行平凯数据库,但尚未得到平凯数据库官方支持。
从 v7.1.8 开始,平凯数据库依赖 glibc 2.28。如果 glibc 版本不满足要求,建议使用上述表格中支持的操作系统,或将操作系统升级到支持 glibc 2.28 的版本。
编译和运行平凯数据库所依赖的库
| 编译和构建所需的依赖库 | 版本 |
|---|---|
| Golang | 1.23 及以上版本 |
| Rust | nightly-2023-12-28 及以上版本 |
| GCC | 7.x |
| LLVM | 17.0 及以上版本 |
运行时所需的依赖库:glibc(2.28-151.el8 版本)
Docker 镜像依赖
支持的 CPU 架构如下:
- x86_64,需要 x86-64-v2 指令集
- ARM 64
软件配置要求
中控机软件配置
| 软件 | 版本 |
|---|---|
| sshpass | 1.06 及以上 |
| TiUP | 1.5.0 及以上 |
目标主机建议配置软件
| 软件 | 版本 |
|---|---|
| sshpass | 1.06 及以上 |
| numa | 2.0.12 及以上 |
| tar | 任意 |
服务器建议配置
平凯数据库支持部署和运行在 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 |
生产环境
| 组件 | 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 |
在部署 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 磁盘上部署。
网络要求
平凯数据库作为一栈式实时 HTAP 数据库,其正常运行需要网络环境提供如下的网络端口配置要求,管理员可根据实际环境中组件部署的方案,在网络侧和主机侧开放相关端口:
| 组件 | 默认端口 | 说明 |
|---|---|---|
| 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 | 日志盘建议最少预留 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 | 中控机:部署一个版本的集群占用不超过 1 GB 空间,部署多个版本集群所占用的空间会相应增加 部署服务器(实际运行各组件的机器):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 浏览器要求
平凯数据库提供了基于 Grafana 的技术平台,对数据库集群的各项指标进行可视化展现。采用支持 Javascript 的微软 Edge、Apple Safari、Google Chrome、Mozilla Firefox 的较新版本即可访问监控入口。