【发布时间】:2019-10-04 16:29:22
【问题描述】:
我们一直在使用具有三个节点的 Cloud Spanner 并获得了良好的性能
9,010 mutations
in 0.168 seconds
across 106 rows and 85 columns
or 53,630 mutations per second
由于我们仍在开发中,我们决定仅使用一个单个节点,以节省开发成本。不幸的是,我们的表现非常糟糕。远低于简单地将上述内容减少 66%。我们看到了
85 mutations mutation
in 1.7 seconds
across 1 row and 85 columns
or 50 mutations per second
我们从每秒大约 53,630 个突变增加到每秒 50 个突变。 性能下降超过 1/1000,而不是预测的 1/3。
我们没有改变一行代码,只是改变了节点的数量。对于从 3 个 Cloud Spanner 节点变为 1 个 Cloud Spanner 节点时为什么会出现如此缓慢的速度,是否有人有任何建议或想法?
编辑:为了清楚起见,我们正在使用批量插入,当我们从 3 个实例“减少”到 1 个时,我们删除了节点并从 1 个重新开始。
编辑:更正语义(“节点”而不是“实例”)
【问题讨论】:
-
Spanner 有一节介绍如何调试:cloud.google.com/spanner/docs/…
-
嘿@TravisWebb 感谢您的链接!我们已经浏览了提供的页面,该页面与解决性能不佳的查询更相关,而不是将实例减少到 1 个。我们对 3 个实例运行了与对 1 个实例相同的查询,但没有看到性能的可扩展性正如预期的那样。如果我忽略了什么,请告诉我。
-
9K 突变在 0.16 秒内跨越 106 行?这似乎……不太可能。你是怎么测试的?每次/提交批处理了多少突变;有多少线程?请注意,扳手提交延迟大约为 15 毫秒,因此每行 50 次提交/秒感觉正常
-
只是添加,要真正加载测试 Spanner,您需要一个大型数据集(数千行)并运行 O(小时)的负载测试,以便 Spanner 拆分数据,以便多个节点正在使用中。
-
@RedPandaCurios 抱歉,我更新了这个问题。我们正在使用批量插入来执行所有这些操作。我们通过插入对 3 实例设置和 1 实例设置使用相同的代码来测试这一点,使用日期时间进行多次测量并平均所有测量值。
标签: database performance google-cloud-platform google-cloud-spanner