我对 ClickHouse 选型的核心判断是:它从来不是”选最大的”,而是先回答自己的查询模式、数据温度与成本约束,再在 CPU、内存、磁盘和网络四条线上做取舍。

选型不是单点决策

tencent-cloud-clickhouse-cluster-sizing 把腾讯云 TCHouse-C 的实例规格摊开之后,真正重要的不是”选哪款机器”,而是把四条约束线拧成一组可验证的假设:

  1. 查询模式决定 CPU 与内存比例:宽表聚合、大量 GROUP BY、复杂 JOIN 会同时吃满 CPU 和内存;纯扫描型日志分析则更吃磁盘吞吐。
  2. 数据温度决定存储介质:热层需要 NVMe SSD 或增强型 SSD 云盘支撑低延迟随机读;冷层可以用 SATA HDD 或对象存储换取容量。
  3. 并发度决定节点数:单节点 CPU 被打满后,水平扩展 shard 才能继续提升吞吐;但 ClickHouse 的强项是单机并行,过早分片会增加 Distributed 查询 fan-out 和运维面。
  4. 网络带宽决定集群规模上限:节点间复制、分布式查询和冷热分层回写都跑在内网上,带宽瓶颈往往在集群扩大到一定规模后才暴露。

计算节点:三类规格怎么选

腾讯云把 ClickHouse 计算节点打包成三种类型,本质上是在 CPU/内存配比磁盘介质 这两个维度上做了预设:

  • 标准型:CPU:内存 = 1:2,磁盘需另配。这是最稳妥的起点。如果你的工作负载还在变化、历史数据规模不大、没有明确的冷热分层策略,先上标准型,后续通过升配或加节点调整。
  • 存储优化型:配备大容量 SATA HDD,单节点可达数十 TB。适合数据量大、查询以顺序扫描为主、对延迟不敏感的场景,比如离线报表、审计日志归档、大规模时序回溯。HDD 的随机读性能差,如果查询经常命中少量热数据,HDD 会成为瓶颈。
  • 高性能型:配备 NVMe SSD,单节点磁盘容量相对小,但 IOPS 和延迟远优于 HDD。适合交互式分析、高并发点查、实时大盘或需要频繁回读热数据的场景。

这里的关键取舍是:同价格下,存储优化型给你更多容量,高性能型给你更低延迟。 没有标准答案,取决于你的查询分布。如果 80% 查询只命中最近 7 天数据,把热层放在高性能节点、冷层放在存储优化节点或对象存储,往往是更划算的分层策略。

CVM 实例族的精细映射

如果不用托管服务、而是自己在腾讯云 CVM 上部署 ClickHouse,实例族的选择需要更精细。以下是我基于 tencent-cloud-clickhouse-cluster-sizing 整理的 ClickHouse 场景映射:

通用分析场景:标准型 S/SA 系列

适合大多数 ClickHouse 工作负载,特别是查询模式多样、既有聚合又有扫描的混合场景。

优先级实例族推荐理由ClickHouse 适用场景
首选SA9最新 AMD Turin-Dense,DDR5,6750万 PPS,睿频 3.4GHz需要高网络吞吐的大集群节点
首选S9最新 Intel Sierra Forest,DDR5,3370万 PPS需要稳定单核性能的通用分析
次选SA9e全核睿频 4.1GHz,更高单核性能复杂计算、大量函数调用的查询
次选S9pro睿频 3.6GHz,更高单核性能高并发短查询场景
性价比SA5AMD Bergamo,DDR5,4500万 PPS预算敏感但需新一代性能
性价比S8Intel Emerald Rapids,DDR5,120Gbps 带宽网络密集型查询
上一代SA4AMD Genoa,DDR5,100Gbps 带宽已有存量或特殊价格优势
上一代S6Intel Ice Lake,DDR4,100Gbps 带宽已有存量或特殊价格优势

ClickHouse 选型建议

  • 标准型是最稳妥的起点,SA9/S9 作为最新一代在内存带宽和网络性能上都有优势
  • 如果查询以复杂计算为主(大量 JOINGROUP BY、窗口函数),优先选 SA9e/S9pro 这类高主频版本
  • 如果集群节点间网络通信量大(多分片、多副本),优先选 SA9/SA5 这类高 PPS 版本

内存密集型场景:内存型 M/MA 系列

ClickHouse 对内存非常敏感。宽表聚合、复杂 JOINORDER BY、字典缓存、mark cache 都需要大量内存。当标准型的内存成为瓶颈时,内存型是更经济的选择。

优先级实例族推荐理由ClickHouse 适用场景
首选MA9最新 AMD Turin-Dense,DDR5,1:8 配比,6750万 PPS超宽表聚合、大量字典、复杂 JOIN
首选M9最新 Intel Sierra Forest,DDR5,1:8 配比需要 Intel 生态的内存密集型场景
次选MA9e全核睿频 4.1GHz内存密集型 + 计算密集型混合
次选M9pro睿频 3.6GHz内存密集型 + 高并发短查询
性价比M8Intel Emerald Rapids,同规格内存价格最低预算敏感的大内存场景
性价比MA5AMD Bergamo,同规格内存价格最低预算敏感的大内存场景
上一代M6Intel Ice Lake,DDR4,同规格内存价格最低已有存量或特殊价格优势
上一代MA3AMD Milan,DDR4,同规格内存价格最低已有存量或特殊价格优势

ClickHouse 选型建议

  • 当标准型 1:2 配比的内存不够用时,内存型 1:8 配比可以在相同 CPU 下提供 4 倍内存
  • 对于需要大量内存缓存的查询(如 join_algorithm = 'grace_hash',大字典,max_memory_usage 较高),内存型往往是更经济的选择
  • 注意内存型网络带宽通常低于同代标准型,如果网络是瓶颈(如大量分布式查询),可能需要更高规格

热数据/低延迟场景:高 IO 型 IT/IA 系列

ClickHouse 的查询性能在很大程度上取决于磁盘 IOPS 和延迟。对于交互式分析、实时大盘、高频点查,本地 NVMe SSD 是必需的。

优先级实例族推荐理由ClickHouse 适用场景
首选ITA5最新 AMD Bergamo,NVMe SSD,单盘 7140GB,整机最高 24 盘热数据层,需要大容量 + 高性能
首选IT5Intel Cascade Lake,NVMe SSD,整机最高 205万 IOPS极致低延迟场景
次选IT3Intel Skylake,NVMe SSD,整机最高 180万 IOPS性价比热数据层
替代IA5se单副本 SSD,随机读写约 10万 IOPS,顺序 1GB/s成本敏感但需 SSD 的场景

ClickHouse 选型建议

  • 高性能型 ClickHouse 节点(托管服务)本质上就是高 IO 型实例的封装
  • ITA5 单盘 7140GB 远大于 IT5/IT3 的 3570GB,适合热数据量大的场景
  • 注意 IT/IA 系列不支持垂直变配(因为本地盘绑定物理机),选型时需要预留余量
  • ITA5/IT5/IT3 的本地盘有数据丢失风险(宿主机故障时),ClickHouse 的多副本机制可以缓解这一风险,但仍需注意

冷数据/归档场景:大数据型 D 系列

对于历史数据归档、低频访问的冷层,大数据型实例提供极高的存储密度和顺序吞吐。

优先级实例族推荐理由ClickHouse 适用场景
首选D3最高 24 块 4TB SATA HDD,94TB 本地存储,单盘 190MB/s 顺序读冷数据归档,顺序扫描为主
次选D2最高 12 块 12TB SATA HDD,144TB 本地存储,单盘 220MB/s 顺序读超大规模冷数据归档

ClickHouse 选型建议

  • D 系列适合 ClickHouse 的冷数据层(通过 storage_policy 配置 TTL move 到 HDD)
  • D2 单盘 12TB 比 D3 的 4TB 更大,总容量更高,但 D3 是更新一代
  • HDD 的随机读性能差,不适合热数据查询。建议只用于通过 TTL 自动下沉的冷分区
  • D 系列同样不支持垂直变配,且本地盘有数据丢失风险

计算密集型场景:计算型 C 系列

对于以复杂计算为主、内存需求不大的 ClickHouse 查询,计算型实例提供更高的单核性能。

优先级实例族推荐理由ClickHouse 适用场景
首选C6最新 Intel Ice Lake,3.2GHz / 睿频 3.5GHz,100Gbps 带宽高计算密度查询
次选C5Intel Cooper Lake,3.4GHz / 睿频 3.8GHz,支持 bfloat16需要最高单核性能
上一代C4Intel Cascade Lake,3.2GHz / 睿频 3.7GHz已有存量或特殊价格优势

ClickHouse 选型建议

  • ClickHouse 的查询通常同时需要 CPU 和内存,纯计算型场景较少
  • 如果查询以简单聚合(countsum)为主,且数据量不大,计算型可能性价比更高
  • 但如果涉及宽表、大量列、复杂 JOIN,标准型或内存型通常更合适

ZooKeeper / Keeper:被低估的协调层

很多选型讨论把注意力全放在计算节点上,却低估了协调层的稳定性对集群的影响。ClickHouse 的副本同步、分布式 DDL、ReplicatedMergeTree 的元数据都依赖 ZooKeeper 或 Keeper。

腾讯云建议 Keeper 规格随负载上升而上升,但实际经验里,Keeper 的瓶颈通常不是 CPU 或内存,而是:

  • 网络延迟:节点与 Keeper 之间的 RTT 直接影响副本同步速度和 DDL 分发效率;
  • 连接数:每个 ClickHouse 节点会维持到 Keeper 的长连接,集群规模扩大时连接数线性增长;
  • 磁盘延迟:Keeper 的 transaction log 需要低延迟磁盘写入,不适合与计算节点共享高负载磁盘。

因此 Keeper 节点不需要像计算节点那样追求大内存,但需要稳定的网络和低延迟磁盘。生产环境常见的配置是 4核16GB 或 8核32GB,重点是独立部署、不与其他高 IO 服务混跑。

网络性能的关键考量

ClickHouse 集群对网络的要求往往被低估。以下场景都会大量消耗内网带宽:

  • 副本同步ReplicatedMergeTree 的 parts 复制
  • 分布式查询Distributed 表向各 shard 发送子查询,再聚合结果
  • 冷热分层:从对象存储读取冷数据到本地 cache
  • 数据迁移:新增节点时的 rebalancing

腾讯云实例的网络性能与规格强相关:

  • PPS(包每秒):最高 6750万(SA9/SA9e 系列),超过 1000万 PPS 后建议用 DPDK
  • 内网带宽:最高 300Gbps(SA9.192XLARGE2304)
  • 队列数:最高 48 队列,影响网络并发处理能力

ClickHouse 选型建议

  • 对于 2 shards × 2 replicas 的小集群,标准型中等规格的网络通常足够
  • 当扩展到 6+ shards 或大量副本时,网络会成为瓶颈,需要选更高 PPS 和带宽的规格
  • 如果大量查询涉及跨 shard 的 JOININ,网络带宽要求会显著增加
  • 巨型帧(Jumbo frames,8500 字节)可以减少大包传输的协议栈开销,对 ClickHouse 的大结果集传输有帮助

与部署拓扑的联动

clickhouse-deployment-topologies 里强调的分片与副本决策,直接影响选型:

  • 副本数增加 → 写入放大增加 → 单节点磁盘吞吐和 Keeper 连接数压力上升;
  • 分片数增加Distributed 查询 fan-out 增加 → 内网带宽和协调开销上升;
  • 冷热分层 → 热节点需要高性能磁盘,冷节点可以用大容量低成本磁盘或对象存储。

所以在选型时,不应该孤立地看单节点规格,而要把节点规格、分片副本策略和冷热分层放在一起算总账。

具体选型推荐

基于以上分析,以下是不同 ClickHouse 场景的推荐配置:

场景一:通用 OLAP(中小规模,查询模式多样)

  • 计算节点:标准型 SA9.8XLARGE128(32核128GB)或 S9.8XLARGE128
  • 存储:增强型 SSD 云盘 2-4TB
  • Keeper:标准型 SA9.LARGE16(4核16GB)
  • 理由:平衡的计算、内存、网络资源,云盘可以独立扩容,适合大多数场景

场景二:内存密集型(宽表聚合、复杂 JOIN)

  • 计算节点:内存型 MA9.8XLARGE256(32核256GB)或 MA9.16XLARGE512
  • 存储:增强型 SSD 云盘 1-2TB
  • Keeper:标准型 SA9.2XLARGE16(8核16GB)
  • 理由:1:8 内存配比可以容纳更大的查询内存和缓存,减少磁盘 IO

场景三:热数据低延迟(实时大盘、交互式分析)

  • 计算节点:高 IO 型 ITA5.8XLARGE128(32核128GB,2×7140GB NVMe)
  • Keeper:标准型 SA9.LARGE16
  • 理由:本地 NVMe SSD 提供最低延迟和最高 IOPS,适合热数据查询
  • 注意:本地盘容量固定,不适合数据量快速增长的场景

场景四:海量冷数据归档(日志、审计、时序历史)

  • 计算节点:大数据型 D3.8XLARGE128(32核128GB,12×3720GB HDD)
  • 热层节点(可选):标准型 + SSD 云盘,用于最近 N 天数据
  • Keeper:标准型 SA9.LARGE16
  • 理由:通过 storage_policy 配置 TTL move,热数据在 SSD,冷数据自动下沉到 HDD

场景五:大规模生产集群(多 shard,高并发)

  • 计算节点:标准型 SA9.16XLARGE256(64核256GB)
  • 存储:增强型 SSD 云盘 4-8TB
  • Keeper:专用标准型 SA9.2XLARGE16 或 SA9.4XLARGE32,独立部署
  • 网络:确保实例规格的内网带宽 ≥ 25Gbps,PPS ≥ 500万
  • 理由:高规格提供足够的 CPU、内存和网络余量,云盘可以独立扩容,便于运维

实用建议

  1. 先纵向,后横向:ClickHouse 单机性能很强,先通过升配(更大 CPU、更多内存、更快磁盘)解决问题,比过早分片更便宜、运维更简单。
  2. 热层优先投资 NVMe/SSD:如果预算有限,优先保证热数据所在节点有高性能磁盘,冷数据可以降级。
  3. Keeper 独立部署:不要把 Keeper 和计算节点混跑,尤其是高负载集群。Keeper 的网络抖动会直接影响整个集群的副本健康度。
  4. 预留网络带宽余量:内网带宽上限是硬约束,选型时注意规格表中的带宽指标,避免集群扩大后网络先成为瓶颈。
  5. 用真实查询验证:选型前的压测不要只跑 SELECT count(),要用真实业务查询(含 JOINGROUP BYORDER BYLIMIT)验证 CPU、内存、磁盘和网络的实际消耗。
  6. 考虑垂直变配限制:IT/IA/D 系列(本地盘实例)不支持垂直变配,选型时需要预留足够余量;标准型/内存型/计算型(云盘实例)支持垂直变配,更灵活。
  7. 关注代际差异:新一代实例(SA9/S9/MA9/M9,DDR5)相比上一代(SA3/S6/MA3/M6,DDR4)在内存带宽上有显著提升,ClickHouse 这种内存密集型应用会从 DDR5 中明显受益。

删减预算

  • 本轮无删减候选:本次更新补充了完整的实例族映射和场景化推荐,与现有内容形成互补,不重复。

来源:tencent-cloud-clickhouse-cluster-sizing

相关页面: