Skip to main content
水平自动扩缩容目前处于私有预览阶段,适用于 Scale 和 Enterprise 套餐。若要申请访问权限,请联系您的 ClickHouse 客户团队或支持团队。
水平自动扩缩容会根据工作负载需求,自动为您的服务添加或移除副本。垂直自动扩缩容会调整每个副本的资源规模,而水平自动扩缩容会调整副本数量,因此尤其适合因查询数量增加而非单个查询负载加重导致需求上升的工作负载。

工作原理

自动扩缩容器会持续监控您的服务,并每 10 分钟根据以下三个信号提出横向扩缩容建议:
  • 并发查询: 所有副本中同时运行的查询数的最大值
  • CPU 利用率: 所有副本中的最高 CPU 使用率
  • 内存利用率: 所有副本中的最高内存使用率
自动扩缩容器将整个服务的目标利用率设为 60%:
  • 横向扩容: 当利用率超过 80% 的高水位线时,增加副本,直至达到您配置的最大值
  • 缩容: 当利用率低于 45% 的低水位线时,移除副本,直至达到您配置的最小值
水位线之间的差距可提供滞后机制,防止服务在横向扩容和缩容之间来回波动。为保护正在运行的工作负载,缩容策略有意设定得比横向扩容更为保守。

启用水平自动扩缩容

可在服务的 设置 页面配置水平自动扩缩容,也可通过 ClickHouse Cloud 副本扩缩容 API 进行配置。 要启用此功能:
  1. 将最小内存设为与最大内存相等,以固定副本大小。目前,水平自动扩缩容要求副本大小固定;同一服务不能同时启用垂直自动扩缩容和水平自动扩缩容。
  2. 将最大副本数设为大于最小副本数。自动扩缩容会在这些范围内运行。将两个值设为相等会将服务固定为指定的副本数,并禁用水平自动扩缩容。
服务最多可水平扩展到 20 个副本。如需更多副本,请联系支持团队。

配置客户端

只有客户端连接到新副本时,新副本才能发挥作用。长连接会始终绑定到连接建立时已有的副本,因此客户端必须定期刷新连接,才能发现新副本。 请通过以下方式之一配置客户端:
  • HTTP 协议 (推荐) : 默认情况下连接为短连接,因此流量会自动分配到新副本
  • 原生协议: 将最大连接生命周期设置为约 30 秒,以便定期重新建立连接

选择合适的副本大小

当每个副本都足够大,能够轻松运行典型查询时,横向自动扩缩容的效果最佳。增加副本可提高服务能够并行运行的查询数量;但不会增加单个查询可用的内存。 推荐做法:
  1. 找到合适的纵向规格,使少量典型查询能够轻松运行且不会出现内存错误。
  2. 将服务固定为该规格。
  3. 随着查询量增长,让横向自动扩缩容添加副本。
如果副本对于工作负载而言过小,自动扩缩器可能会添加无法处理查询的副本。自动扩缩器对此设有保护机制——例如,对于额外副本也无法改善的单个超大查询,它不会触发横向扩容——但合理的资源规格仍然是重要因素。

负载分布

水平自动扩缩容的前提是负载在各副本之间均匀分布。如果某个副本的利用率达到 90%,而其他副本仅为 10%,增加副本并无帮助,应先解决负载不均衡问题。自动扩缩容器会检测负载不均衡,在该问题持续存在期间不会建议横向扩容。 负载不均衡的常见原因包括:长连接集中在少数副本上 (请参阅配置客户端) ,以及会话绑定的工作负载。

查看扩缩容活动

服务的扩缩容事件会显示在 ClickHouse Cloud 控制台的指标仪表板中,其中会显示当前副本数量和资源分配总量。

已知限制

  • 水平自动扩缩容目前处于私有预览阶段,必须由 ClickHouse 支持团队为您的组织启用。
  • 必须将最小内存设置为与最大内存相同,以固定垂直副本大小。
  • 每个服务最多只能有 20 个副本。如需更多副本,请联系支持团队。
  • 系统每 10 分钟生成一次建议;水平自动扩缩容并非用于应对一分钟以内的突发流量。对于可预测的峰值,请考虑使用定时扩缩容
最后修改于 2026年8月14日