效果概览

本页面介绍了 Spanner 可 最佳条件下提供的 影响性能的因素 以及使用技巧 ,以便测试和排查 Spanner 性能问题。

此页面上的信息适用于 GoogleSQL 和 PostgreSQL 数据库。

性能和存储空间方面的改进

性能和存储空间方面的改进即将面向所有用户推出 Spanner 单区域和多区域实例 配置。这些 性能改进应该会带来更高的吞吐量和更短的延迟时间 (位于单区域和多区域实例中的 Spanner 节点中) 配置。提供更高的吞吐量和存储空间 选择实例配置。您无需对自己的 或者在 Spanner 中手动配置任何内容 充分利用这些改进功能 且无需额外付费

提高性能吞吐量

下表提供了 性能得到提升的实例配置。每个节点 (1000 个处理单元)的计算容量高达 50% 更高的吞吐量

实例配置类型 峰值读取次数(每个区域的 QPS)   峰值写入次数(总 QPS)   使用吞吐量优化写入的峰值写入次数(总 QPS)
区域级 22500 3,500 人 22500
多区域 15000 2,700,000 15000

更高的性能吞吐量适用于所有 Spanner 实例配置,但以下配置除外:

  • 区域实例配置:us-west4

  • 多区域实例配置:nam10nam-eur-asia1

有关这些实例的性能吞吐量的信息 请参阅典型工作负载下的性能

读取指南按区域提供(因为可以从任何区域提供读取操作) 读写区域),而写入指导适用于整个 配置。阅读指南假定您读取的单行大小为 1KB。撰写 指南假设您以每行 1KB 的数据写入单行。

使用吞吐量优化写入时,可使用 100 毫秒的批处理延迟时间。

一般来说,Spanner 的读写吞吐量 随着您增加更多计算容量(节点或处理能力), 单位)。例如,如果单区域 Spanner 具有 2 个节点的实例每秒可以提供多达 45,000 次读取, 具有 4 个节点的单区域 Spanner 实例最多可提供 每秒 9 万次读取。

如果您在 Spanner,请参阅排查性能下降问题 了解常见原因。

更多存储空间

对于选定的 Spanner 单区域和多区域实例 每个节点(1,000 个处理单元)的计算容量, 实例的存储容量增加了 10 TB。 下表提供了具有更大存储空间的实例配置 可用:

区域实例配置

africa-south1asia-east1asia-northeast2asia-south1asia-southeast1australia-southeast1europe-west3europe-west4southamerica-east1us-central2us-east1us-east4us-east7

多区域实例配置

asia1nam6nam7nam8nam14

典型工作负载下的性能

如果您使用的实例配置没有得到改进 计算性能,则每个节点(1,000 个处理单元) 可提供以下大致吞吐量 (每秒查询次数):

实例配置类型 峰值读取次数(每个区域的 QPS)   峰值写入次数(总 QPS)
区域级 (Regional) 15000 2,300,000
多区域(按基本配置细分) 10,000 1800

对于允许使用可选只读副本的区域级实例配置, 可选的只读副本可支持 每秒 5,000 次读取。

多区域配置的性能

每项 Spanner 多区域实例配置在 基于复制拓扑的不同性能特征。使用 吞吐量优化型写入 写入吞吐量超过表中数字的数值。

每 1000 个处理单元(1 个节点)的计算容量可提供 以下峰值性能(在 100% CPU 时):

基本配置名称 大致读取峰值(每个区域的 QPS) 大致写入峰值(总 QPS)
asia1 15000 2,700,000
asia2 15000 2,700,000
eur3 15000 2,700,000
eur5 15000 2,700,000
eur6 15000
7500(每个可选只读副本)
2,700,000
nam3 15000
7500(每个可选只读副本)
2,700,000
nam6 us-central1us-east1为 15,000,
us-west1us-west2为 7,500 [1]
2,700,000
nam7 15000
7500(每个可选只读副本)
2,700,000
nam8 15000 2,700,000
nam9 15000 2,700,000
nam10 10,000 1800
nam11 15000
7500(每个可选只读副本)
2,700,000
nam12 15000 2,700,000
nam13 15000 2,700,000
nam14 15000 2,700,000
nam15 15000 2,700,000
nam-eur-asia1 10,000 1,000
nam-eur-asia3 15000 1,500
  • [1]us-west1us-west2 只能提供一半的 QPS 性能,因为它们 而不是两个

读取指南按区域提供(因为读取可以从 ),而编写指导适用于整个配置。读取和写入 指南假设您以每 1 KB 的数据读写单行 。

在 Spanner 上运行典型工作负载

始终对 Spanner 实例运行您自己的典型工作负载 以便确定最佳的资源分配方式 。Google 的 PerfKit Benchmarker 使用 YCSB - 对云服务进行基准化分析。您可以 按照适用于 Spanner 的 PerfKitBenchmarker 教程进行操作 来为自己的工作负载创建测试执行上述操作时, 包含基准化分析配置 yaml 文件中的参数, 确保生成的基准反映 生产环境:

  • 数据库的总大小
  • 架构(例如:行键大小、列数、行数据大小
  • 数据访问模式(行键分布)
  • 读取与写入混合
  • 查询的类型和复杂性

重现基准数据

要重现基准数据,请遵循 “使用 PerfKit Benchmarker 对 Spanner 进行基准测试”教程 使用 throughput_benchmark 中相应的 yaml 文件 文件夹中。

对经历过的实例配置中的实例进行基准测试 性能提升,请确保您的测试 以这些改进的实例配置之一运行。

可用区级和区域级故障防护

在生产环境中运行工作负载时,务必要为工作负载 计算容量,以便在发生服务中断时继续处理流量 整个可用区(对于单区域实例)或整个区域(对于多区域) 实例)。请参阅高 CPU 利用率提醒 了解有关建议的 CPU 上限的详细信息。

后续步骤