扩缩
扩缩集群是指为集群添加或移除节点以响应集群工作负载或数据存储需求变化的过程。 创建集群时,您还可以为集群配置节点扩缩比例。 在配置伸缩之前,请先了解限制。
您可以根据集群的 CPU 使用率等指标扩缩 Bigtable 集群。例如,如果集群的负载很高,并且其 CPU 使用率也很高,您可以向集群添加节点,直到其 CPU 使用率有所下降为止。您还可以在集群未被大量使用时移除节点,从而节省费用。
您可以通过以下方式扩缩 Bigtable 集群:
横向伸缩
- 自动扩缩
- 手动分配节点
在大多数情况下,建议选择自动扩缩。为集群启用自动扩缩功能后,Bigtable 会持续监控集群,并根据您的设置自动调整节点数量。
内存中层纵向伸缩
Bigtable 内存中层使用全代管式纵向伸缩功能来处理吞吐量,这让集群几乎可以立即响应点读取流量的峰值。
纵向伸缩功能会自动调整每个节点以适应工作负载需求,并与 Bigtable 自动伸缩功能无缝协作。启用内存中层的每个 Bigtable 节点都有纵向伸缩限制。如果达到该限制,Bigtable 自动扩缩功能会在最大节点配置范围内添加节点,以支持工作负载并重新均衡流量。
如需详细了解纵向伸缩限制,请参阅配额和 限制。如需详细了解每个节点的内存中吞吐量 容量,请参阅了解性能。
节点扩缩比例
创建 Bigtable 集群时,您可以选择将集群配置为节点扩缩比例为 2 倍 。选择此配置后,Bigtable 会将两个标准节点视为一个更大的计算节点,并且集群始终以两个节点为增量进行扩缩。因此,集群中节点之间的计算边界更少。根据工作负载的不同,节点伸缩比例为 2 倍的优势包括:
- 提升了吞吐量和尾部延迟稳定性
- 能够更好地吸收热点
使用 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 版中的 SSD 集群。
节点扩缩比例限制
您无法将使用标准节点伸缩的集群转换为使用节点伸缩比例为 2 倍的配置;您必须创建新集群,并在创建时启用节点伸缩比例为 2 倍的配置。如需详细了解如何向实例添加集群,请参阅修改实例。
您无法为 HDD 集群配置节点伸缩比例为 2 倍的配置。
您可以在每个 Bigtable 区域中创建配置了节点伸缩比例为 2 倍的集群,但并非在每个可用区中都可以创建。以下可用区无法包含节点伸缩比例为 2 倍的集群:
- me-central2-b
后续步骤
- 了解 Bigtable 自动扩缩。
- 了解如何监控您的实例,以 编程方式以及通过 Google Cloud 控制台。