本页面介绍了 Spanner 可 最佳条件下提供的 影响性能的因素 以及使用技巧 ,以便测试和排查 Spanner 性能问题。
此页面上的信息适用于 GoogleSQL 和 PostgreSQL 数据库。
性能和存储空间方面的改进
性能和存储空间方面的改进即将面向所有用户推出 Spanner 单区域和多区域实例 配置。这些 性能改进应该会带来更高的吞吐量和更短的延迟时间 (位于单区域和多区域实例中的 Spanner 节点中) 配置。提供更高的吞吐量和存储空间 选择实例配置。您无需对自己的 或者在 Spanner 中手动配置任何内容 充分利用这些改进功能 且无需额外付费
提高性能吞吐量
下表提供了 性能得到提升的实例配置。每个节点 (1000 个处理单元)的计算容量高达 50% 更高的吞吐量
实例配置类型 | 峰值读取次数(每个区域的 QPS) | 峰值写入次数(总 QPS) | 使用吞吐量优化写入的峰值写入次数(总 QPS) | ||
---|---|---|---|---|---|
区域级 | 22500 | 或 | 3,500 人 | 22500 | |
多区域 | 15000 | 或 | 2,700,000 | 15000 |
更高的性能吞吐量适用于所有 Spanner 实例配置,但以下配置除外:
区域实例配置:
us-west4
多区域实例配置:
nam10
、nam-eur-asia1
有关这些实例的性能吞吐量的信息 请参阅典型工作负载下的性能。
读取指南按区域提供(因为可以从任何区域提供读取操作) 读写区域),而写入指导适用于整个 配置。阅读指南假定您读取的单行大小为 1KB。撰写 指南假设您以每行 1KB 的数据写入单行。
使用吞吐量优化写入时,可使用 100 毫秒的批处理延迟时间。
一般来说,Spanner 的读写吞吐量 随着您增加更多计算容量(节点或处理能力), 单位)。例如,如果单区域 Spanner 具有 2 个节点的实例每秒可以提供多达 45,000 次读取, 具有 4 个节点的单区域 Spanner 实例最多可提供 每秒 9 万次读取。
如果您在 Spanner,请参阅排查性能下降问题 了解常见原因。
更多存储空间
对于选定的 Spanner 单区域和多区域实例 每个节点(1,000 个处理单元)的计算容量, 实例的存储容量增加了 10 TB。 下表提供了具有更大存储空间的实例配置 可用:
区域实例配置 |
|
---|---|
多区域实例配置 |
|
典型工作负载下的性能
如果您使用的实例配置没有得到改进 计算性能,则每个节点(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-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 |
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-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 价格。