计算容量、节点和处理单元

本页面介绍了 Spanner 计算容量和 用于量化的测量指标:节点和处理单元。

计算容量

计算容量定义了实例中数据库可用的服务器和存储资源的数量。创建实例时,您可以将其计算容量指定为处理单元数或节点数,1000 个处理单元等于 1 个节点。

使用哪种度量单位并不重要,除非您创建的实例的计算容量小于 1000 个处理单元(1 个节点);在这种情况下,您必须使用处理单元来指定实例的计算容量。

定义或更改实例的计算容量时,您需要指定 处理单元数为 100 的倍数(100、200、300 等)。当数字 处理单元数达到 1, 000 时,您可以指定更大的数量,例如 是 1000 个处理单元(1000、2000、3000 等)的倍数或节点(1、 2、3 等)。

处理单元数少于 1,000 的实例适合处理更小的数据 大小、查询和工作负载它们的计算资源有限 可能导致某些工作负载出现非线性伸缩和性能, 会出现间歇性增加的延迟

数据存储限制

详见配额和限制,以保证高可用性和 访问数据库时的延迟时间,Spanner 会使用 根据实例的计算容量来确定存储限制, 以下指南:

  • 对于小于 1 个节点(1,000 个处理单元)的实例,Spanner 为每个会话分配 409.6 GB 流量 数据库中有 100 个处理单元。
  • 对于 1 个节点及更大的实例,Spanner 会为每个节点分配 4 TB 数据。部分单区域、双区域和多区域 Spanner 实例配置支持增加存储容量(每个节点 10 TB)。如需了解详情,请参阅性能和存储方面的改进

例如,要为 300 GB 的数据库创建实例,您可以 将其计算容量设置为 100 个处理单元此计算容量将使实例保持在限制以下,直到数据库增长到 409.6 GB 以上。数据库达到此大小后,您需要再添加 100 个处理单元以允许数据库增长。否则,Spanner 可能会拒绝对数据库执行的写入操作。如需了解详情,请参阅数据库存储空间利用率建议

Spanner 会对实例实际使用的存储空间计费 而非总存储空间配额

性能

给定计算容量可以提供的峰值读取和写入吞吐量值取决于实例配置,以及架构设计和数据集特征。有关 详情,请参阅效果概览

您可以使用处理单元数少于 1,000 的实例来处理较小的数据量、查询和工作负载。对于较大的工作负载,其有限的计算资源可能会导致非线性扩缩和性能,并且延迟时间会间歇性增加。

计算容量和实例配置

单区域、双区域和多区域配置中所述,Spanner 可将实例分布到一个或多个区域的可用区,以提供高性能和高可用性。因此, Spanner 还会分发 实例的计算容量

下图说明了服务器资源的这种分布。

在单区域实例配置中创建的两个实例

下图展示了两个具有区域配置的实例:

  • Instance-A 显示具有 1000 个处理单元(1 个节点)的实例,其计算容量分布在三个可用区中的每个可用区中消耗服务器资源。
  • Instance-B 显示三个可用区中的一个具有 2000 个处理单元的实例(具有 2 个节点),其计算容量分布会占用服务器资源。

请注意下图中的以下内容:

  • Spanner 在每个实例中分配服务器资源 可用区每个可用区的服务器资源都会使用其可用区中的数据副本。如需了解实例配置中的数据副本,请参阅单区域、双区域和多区域配置。了解 Spanner 如何保留这些数据副本 请参阅复制

  • 实例 A 的服务器资源显示在单个框中,而实例 B 的资源显示在分为两个部分的框中。这个 说明 Spanner 会分配服务器 为不同规模的实例指定不同的资源

    • 对于 1000 个处理单元(1 个节点)及更小的实例,Spanner 会在每个可用区的单个服务器任务中分配服务器资源。
    • 对于大于 1000 个处理单元(1 个节点)的实例,Spanner 会在每个可用区的多个服务器任务中分配服务器资源,每 1000 个处理单元对应一个任务。为每个可用区使用多个服务器任务可以提高性能,使 Spanner 能够创建数据库分片并提供更好的性能。

更改计算容量

创建实例后,您可以增加其计算容量。在 大多数情况下,请求会在几分钟内完成在极少数情况下, 最多可能需要一个小时才能完成

在大多数情况下,您还可以减少计算容量。在以下几种情况下,您无法降低计算容量:

  • 移除计算容量需要您的实例的每个节点(1,000 个处理单元)存储超过 4 TB 的数据。
  • 根据您的历史使用模式,Spanner 为您的实例数据创建了大量分块,并且在某些罕见情况下,在移除计算容量后,Spanner 将无法管理分块。

在后一种情况下,您可以尝试逐步减小计算容量,直到找到 Spanner 管理实例所有分块所需的最小容量。如果实例不再需要 由于使用模式变化导致的分片过多,Spanner 可能 最终将一些分块合并在一起 在一两周后进一步增加实例的计算容量。

移除计算容量时,请在 Cloud Monitoring 中监控 CPU 利用率和请求延迟时间,以确保单区域实例的 CPU 利用率保持在 65% 以下,多区域实例中每个区域的 CPU 利用率保持在 45% 以下。移除计算容量时,您可能会遇到请求延迟暂时增加的情况。

Spanner 没有暂停模式。Spanner 计算容量是专用资源,即使您没有运行工作负载,Spanner 也会经常执行后台工作以优化和保护您的数据。

您可以使用 Google Cloud 控制台Google Cloud CLI 或 Spanner 客户端库来更改计算容量。如需了解详情,请参阅 更改计算容量

计算容量与副本

如果您需要纵向扩容实例中的服务器和存储资源,请增加实例的计算容量。请注意,增加计算容量不会增加副本的数量(对于给定实例配置而言,副本数量是固定的),但会增加每个副本在实例中拥有的资源。增加计算容量会为每个副本提供更多 CPU 和 RAM, 这会提高副本的吞吐量(即 都有可能发生)。

后续步骤