跳到主要内容
跳到主要内容

自动扩展

扩展是根据客户需求调整可用资源的能力。Scale 和 Enterprise(标准 1:4 配置)层服务可以通过编程调用 API 或在 UI 上更改设置以横向扩展系统资源。或者,这些服务可以垂直自动扩展以满足应用程序需求。

Scale plan feature

Automatic vertical scaling is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

ClickHouse Cloud 中的扩展工作原理

目前,ClickHouse Cloud 支持垂直自动扩展和手动横向扩展 Scale 层服务。

对于 Enterprise 层服务,扩展如下工作:

  • 横向扩展:在企业层,所有标准和自定义配置都可以手动横向扩展。
  • 垂直扩展
    • 标准配置(1:4)将支持垂直自动扩展。
    • 自定义配置在启动时将不支持垂直自动扩展或手动垂直扩展。但是,可以通过联系支持团队进行垂直扩展。
备注

我们正在为计算副本引入一种新的垂直扩展机制,我们称之为“Make Before Break”(MBB)。这种方法在移除旧副本之前增加一个或多个新的副本,以防止在扩展操作期间出现任何容量损失。通过消除移除现有副本与添加新副本之间的差距,MBB 创建了一个更无缝且干扰更小的扩展过程。它在向上扩展的场景中特别有利,因为高资源利用率触发了对额外容量的需求,因为过早移除副本只会加剧资源限制。

请注意,作为此更改的一部分,历史系统表数据将在最多 30 天内保留,以便于扩展事件。此外,对于 AWS 或 GCP 上的服务,任何早于 2024 年 12 月 19 日的系统表数据和对于 Azure 上的服务,任何早于 2025 年 1 月 14 日的系统表数据将不会在迁移到新的组织层时保留。

垂直自动扩展

Scale plan feature

Automatic vertical scaling is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

Scale 和 Enterprise 服务支持基于 CPU 和内存使用情况的自动扩展。我们持续监控服务在过去 30 小时内的历史使用情况,以做出扩展决策。如果使用量超过或低于某些阈值,我们会相应地扩展服务以匹配需求。

基于 CPU 的自动扩展在 CPU 使用量超过 50-75% 的上限阈值时启动(实际阈值取决于集群的大小)。此时,集群的 CPU 分配将加倍。如果 CPU 使用量降到上限阈值的一半以下(例如,在 50% 的上限阈值情况下降到 25%),CPU 分配将减半。

基于内存的自动扩展将集群扩展到最大内存使用量的 125%,如果出现 OOM(内存不足)错误,则扩展到 150%。

选择更大的 CPU 或内存建议,并以 1 CPU 和 4 GiB 内存的步幅进行扩展。

配置垂直自动扩展

具有 Admin 角色的组织成员可以调整 ClickHouse Cloud Scale 或 Enterprise 服务的扩展配置。要配置垂直自动扩展,请转到服务的 设置 选项卡,并根据下图调整最小和最大内存以及 CPU 设置。

备注

单副本服务不能在所有层进行扩展。

将副本的 最大内存 设置为高于 最小内存 的值。服务将在这些范围内按需扩展。这些设置在初始服务创建流程中也可以使用。您服务中的每个副本将分配相同的内存和 CPU 资源。

您还可以选择将这些值设置为相同,基本上将服务“固定”到特定配置。这样会立即强制扩展到您选择的所需大小。

需要注意的是,这将禁用集群上的任何自动扩展,您的服务将不会受到超过这些设置的 CPU 或内存使用增加的保护。

备注

对于 Enterprise 层服务,标准 1:4 配置将支持垂直自动扩展。 自定义配置在启动时将不支持垂直自动扩展或手动垂直扩展。 但是,可以通过联系支持进行垂直扩展。

手动横向扩展

Scale plan feature

Manual horizontal scaling is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

您可以使用 ClickHouse Cloud 公共 API 通过更新服务的扩展设置或从云控制台调整副本数量来扩展服务。

ScaleEnterprise 层确实支持单副本服务。然而,在这些层中,起始有多个副本的服务,或扩展到多个副本的服务只能缩减到至少 2 个副本。

备注

服务可以横向扩展到最多 20 个副本。如果您需要额外的副本,请联系支持团队。

通过 API 进行横向扩展

要横向扩展集群,请通过 API 发送 PATCH 请求以调整副本数量。以下截图显示了将 3 个副本的集群扩展到 6 个副本的 API 调用及其对应的响应。

PATCH 请求以更新 numReplicas

PATCH 请求的响应

如果您在一个请求正在进行时发出新的扩展请求或连续发出多个请求,扩展服务将忽略中间状态,并收敛到最终的副本计数。

通过 UI 进行横向扩展

要通过 UI 横向扩展服务,可以在 设置 页面上调整服务的副本数量。

来自 ClickHouse Cloud 控制台的服务扩展设置

服务扩展后,云控制台中的指标仪表板应显示服务的正确分配情况。下图显示集群扩展到总内存为 96 GiB,这是 6 个副本,每个副本的内存分配为 16 GiB

自动闲置

设置 页面上,您还可以选择在服务处于非活动状态时是否允许自动闲置,如上图所示(即当服务没有执行任何用户提交的查询时)。自动闲置减少了服务的成本,因为在服务暂停时您不会为计算资源付费。

备注

在某些特殊情况下,例如当服务具有大量部分时,服务将无法自动闲置。

服务可能会进入一种闲置状态,此时暂停对 可刷新物化视图 的刷新,消耗 S3Queue 的数据,以及调度新的合并。现有的合并操作将在服务转换到闲置状态之前完成。为了确保可刷新物化视图和 S3Queue 消耗的连续操作,请禁用闲置状态功能。

何时不使用自动闲置

仅在您的用例能够在响应查询前处理延迟的情况下使用自动闲置,因为当服务暂停时,连接到服务的请求将超时。自动闲置非常适合不频繁使用的服务,并且可以容忍延迟。对于经常使用并驱动面向客户的功能的服务,不推荐使用。

处理突发工作负载

如果您预期即将发生工作负载高峰,您可以使用 ClickHouse Cloud API 预先扩展服务以应对高峰,并在需求减退后缩减服务。

要了解每个副本当前的 CPU 核心和内存使用情况,您可以运行以下查询: