本页面介绍了 Spanner 可 最佳条件下提供的 影响性能的因素 以及使用技巧 ,以便测试和排查 Spanner 性能问题。
此页面上的信息适用于 GoogleSQL 和 PostgreSQL 数据库。
性能和存储空间方面的改进
性能和存储空间方面的改进即将面向所有用户推出 Spanner 单区域和多区域实例 配置。您无需 或手动配置您应用中的任何内容 Spanner 实例可以利用这些改进, 且无需额外付费。这些性能改进带来 Spanner 节点在这两个国家/地区都有更高的吞吐量和更低的延迟 单区域和多区域实例配置所有实例配置 吞吐量提高了,部分实例配置也增加了 storage。
提高性能吞吐量
所有 Spanner 实例配置的性能都得到了提升 并提高吞吐量下表提供了 Spanner 实例的吞吐量(每秒查询次数) 配置:
实例配置类型 | 峰值读取次数(每个区域的 QPS) | 峰值写入次数(总 QPS) | 使用吞吐量优化写入的峰值写入次数(总 QPS) | ||
---|---|---|---|---|---|
区域级 | 22500 | 或 | 3,500 人 | 22500 | |
双区域和多区域 | 15000 | 或 | 2,700,000 | 15000 |
有关这些实例的性能吞吐量的信息 请参阅典型工作负载下的性能。
读取指南按区域提供(因为可以从任何区域提供读取操作) 读写区域),而写入指导则适用于整个 配置。阅读指南假定您读取的单行大小为 1KB。撰写 指南假设您以每行 1KB 的数据写入单行。
使用吞吐量优化写入时,可使用 100 毫秒的批处理延迟时间。
一般来说,Spanner 的读写吞吐量 随着您增加更多计算容量(节点或处理能力), 单位)。例如,如果单区域 Spanner 具有 2 个节点的实例每秒可以提供高达 45,000 次读取, 具有 4 个节点的单区域 Spanner 实例最多可提供 每秒 9 万次读取。
如果您在以下时间段内没有看到工作负载的预期性能: Spanner,请参阅排查性能下降问题 了解常见原因。
更多存储空间
适用于大多数 Spanner 单区域和多区域实例 每个节点(1,000 个处理单元)的计算容量, 实例的存储容量增加了 10 TB。 所有 Spanner 实例均可使用增加的存储空间 以下配置除外:
区域实例配置 |
|
---|---|
多区域实例配置 |
|
典型工作负载下的性能
所有 Spanner 实例配置的性能都得到了提升 并提高吞吐量
区域配置的性能
每 1000 个处理单元(1 个节点)的计算容量可提供 以下峰值性能(在 100% CPU 下):
峰值读取次数(每个区域的 QPS) | 峰值写入次数(总 QPS) | 使用吞吐量优化写入的峰值写入次数(总 QPS) | ||
---|---|---|---|---|
22500 | 或 | 3,500 人 | 22500 |
对于允许使用可选只读副本的区域级实例配置, 可选的只读副本可支持 每秒 5,000 次读取。
双区域配置的性能
每 1000 个处理单元(1 个节点)的计算容量可提供 之后为双区域实例配置中的峰值性能(CPU 为 100%)。 使用吞吐量优化写入 以增加写入吞吐量,使其超过表中的数字。
基本配置名称 | 大致读取峰值(每个区域的 QPS) | 大致写入峰值(总 QPS) |
---|---|---|
dual-region-australia1 |
15000 | 2,700,000 |
dual-region-germany1 |
15000 | 2,700,000 |
dual-region-india1 |
15000 | 2,700,000 |
dual-region-japan1 |
15000 | 2,700,000 |
读取指南按区域提供(因为可以从以下位置传送读取: ),而编写指导适用于整个配置。读取和写入 指南假设您以每 1 KB 的数据读写单行 。
多区域配置的性能
每项 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-central1 和us-east1 为 15,000,us-west1 和us-west2 为 7,500 [1] |
2,700,000 |
nam7 |
15000 7500(每个可选只读副本) |
2,700,000 |
nam8 |
15000 | 2,700,000 |
nam9 |
15000 | 2,700,000 |
nam10 |
15000 | 2,700,000 |
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 |
nam16 |
15000 | 2,700,000 |
nam-eur-asia1 |
15000 | 1500 |
nam-eur-asia3 |
15000 | 1500 |
- [1]:
us-west1
和us-west2
只能提供一半的 QPS 性能,因为它们 而不是两个
读取指南按区域提供(因为可以从以下位置传送读取: ),而编写指导适用于整个配置。读取和写入 指南假设您以每 1 KB 的数据读写单行 。
在 Spanner 上运行典型工作负载
始终对 Spanner 实例运行您自己的典型工作负载
以便确定最佳的资源分配方式
。Google 的 PerfKit Benchmarker 使用
YCSB - 对云服务进行基准化分析。您可以
学习适用于 Spanner 的 PerfKitBenchmarker 教程
来为自己的工作负载创建测试执行上述操作时,
包含基准化分析配置 yaml
文件中的参数,
确保生成的基准反映
生产环境:
重现基准数据
要重现基准数据,请遵循
“使用 PerfKit Benchmarker 对 Spanner 进行基准测试”教程
使用 throughput_benchmark 中相应的 yaml
文件
文件夹中。
对经历过的实例配置中的实例进行基准测试 性能提升,请确保您的测试 以这些改进的实例配置之一运行。
可用区级和区域级故障防护
在生产环境中运行工作负载时,务必要为工作负载 计算容量,以便在发生服务中断时继续处理流量 整个可用区(对于单区域实例)或整个区域(对于双区域和 多区域实例)。如需详细了解建议的 CPU 上限, 请参阅高 CPU 利用率提醒。
后续步骤
- 了解如何设计 Spanner 架构。
- 了解如何监控 Spanner 性能。
- 了解如何使用 Key Visualizer 排查问题。
- 了解 Spanner 价格。