扩缩
扩缩集群是指为集群添加或移除节点以响应集群工作负载或数据存储需求变化的过程。创建集群时,您还可以为集群配置节点缩放比例。在配置伸缩之前,请先了解相关限制。
您可以根据集群的 CPU 使用率等指标扩缩 Bigtable 集群。例如,如果集群的负载很高,并且其 CPU 利用率也很高,您可以向集群添加节点,直到其 CPU 使用率有所下降为止。您也可以在集群并未被大量使用时,移除集群中的节点以节省成本。
您可以通过以下方式扩缩 Bigtable 集群:
横向扩缩
- 自动扩缩
- 手动分配节点
在大多数情况下,请选择自动扩缩。为集群启用自动扩缩功能后,Bigtable 会持续监控集群,并根据您的设置自动调整节点数量。
内存中层纵向伸缩
Bigtable 内存中层使用全代管式纵向伸缩来提高吞吐量,这使得集群几乎可以立即响应点读取流量的峰值。
纵向伸缩功能可自动调整每个节点,以满足工作负载需求,并与 Bigtable 自动伸缩功能无缝配合。每个启用了内存中层的 Bigtable 节点都有纵向伸缩限制。如果达到该限制,Bigtable 自动扩缩功能会在最大节点配置范围内添加节点,以支持工作负载并重新平衡流量。
如需详细了解纵向伸缩限制,请参阅配额和限制。如需详细了解每个节点的内存中吞吐量容量,请参阅了解性能。
节点扩缩比例
创建 Bigtable 集群时,您可以选择将集群配置为采用双倍节点缩放比例。选择此配置后,Bigtable 会将两个标准节点视为一个更大的计算节点,并且集群始终以两个节点为增量进行扩缩。因此,集群中节点之间的计算边界更少。根据工作负载的不同,将节点数量增加一倍可带来以下好处:
- 提高了吞吐量和尾部延迟稳定性
- 更好地吸收热点
使用Google Cloud 控制台或 gcloud CLI 时,您可以创建启用了 2 倍节点扩缩比例的集群。
您可以通过自动伸缩或手动节点分配来配置 2 倍节点伸缩。 在企业 Plus 版中,您必须启用 2 倍节点伸缩,才能使用每个节点 64 TB 的扩展分层存储空间上限(预览版)。
如需了解限制,请参阅节点缩放比例限制。
小型集群
对于较大的工作负载,2 倍节点伸缩是最佳选择。如果您考虑从标准节点伸缩(按 1 倍伸缩)更改为 2 倍节点伸缩,请考虑费用影响。对于较小的工作负载(例如在单节点集群上运行的工作负载),使用 2 倍节点伸缩的费用会增加一倍。同样,如果之前在 3 节点集群上运行的工作负载使用 2 倍节点伸缩,则费用会增加 33%。
另一方面,对于之前在大型集群(例如具有 50 个节点的集群)上运行的工作负载,相对于节点数量而言,2 倍的节点缩放比例的影响较小。
如果您尝试在不支持的可用区中创建节点缩放比例为 2 倍的集群,Bigtable 会返回错误。
限制
集群伸缩受节点可用性的限制,需要一定时间才能完成,无法弥补不当的架构设计,并且必须逐步完成。以下部分将介绍这些限制,以及适用于 2 倍节点伸缩的限制。
节点可用性
无论集群启用了手动节点分配还是自动扩缩,节点配额都适用。如需了解详情,请参阅配额和节点可用性。
节点重新均衡时出现延迟现象
将节点添加到集群后,负载繁重的集群可能需要长达 20 分钟的时间才能表现出性能显著提升。因此,如果您的工作负载涉及时间短暂的突发高负载活动,则根据 CPU 负载向集群添加节点并不会提升性能,因为等到 Bigtable 重新均衡数据时,这种短暂的活动已经结束。
若要规划此延迟时间,您可以先通过编程方式或通过 Google Cloud 控制台向集群添加节点,然后再增加集群的负载。这种方法可让 Bigtable 在工作负载增加之前有时间将您的数据重新平衡到增加的节点。在使用手动节点分配的集群上,更改节点数量。在使用自动扩缩功能的集群上,更改节点数下限。流量恢复正常后,更改回原先的节点设置。
内存中层级几乎可以瞬时纵向伸缩,从而应对流量高峰。当 Bigtable 通过自动扩缩添加节点并提高内存中层吞吐量容量时,它会自动管理内存中层的数据分片。
因纵向缩容过快而导致的延迟增加
当您减少集群中的节点数量进行纵向缩容时,请尽量不要在 10 分钟内将集群大小降低 10% 以上。如果集群中的剩余节点暂时不堪重负,则纵向缩容过快可能会导致性能问题,例如延迟增加。
架构设计问题
如果表的架构设计存在问题,则向 Bigtable 集群添加节点可能不会提升性能。例如,如果您要对表的单个行执行大量读取或写入操作,则所有读取或写入操作都将转至集群的同一节点,因此,添加节点并不会提升性能。相反,如果读取和写入操作均匀分布到表的各行中,则添加节点通常会使性能有所提升。
如需详细了解如何设计架构以有效调节 Bigtable 的规模,请参阅设计您的架构。
版本限制
内存中层和纵向伸缩仅适用于企业 Plus 版中的固态硬盘集群。
节点缩放比例限制
您无法将使用标准节点伸缩的集群转换为使用 2 倍节点伸缩;您必须创建新集群,并在创建时启用 2 倍节点伸缩。如需详细了解如何向实例添加集群,请参阅修改实例。
您无法为 HDD 集群配置 2 倍节点伸缩。
您可以在每个 Bigtable 区域中创建配置了 2 倍节点伸缩的集群,但不能在每个可用区中创建。以下可用区无法包含节点伸缩倍数为 2 的集群:
- me-central2-b
- southamerica-east1-c
后续步骤
- 了解 Bigtable 自动扩缩。
- 了解如何以编程方式以及通过 Google Cloud 控制台监控您的实例。