Google Bigtable 性能:QPS 与 CPU 利用率
Google Bigtable performance: QPS vs CPU utilization
我正在测试一个小型 Bigtable 集群(最少 3 个节点)。我在 Google 控制台上看到,随着写入 QPS 级别接近 10K,CPU 利用率接近建议的最大值 ~80%。
据我了解,QPS指标是针对整个实例的,而不是针对每个节点的?在那种情况下,为什么达到 CPU 阈值,而技术上实例的 QPS 负载仅为 30K 指导最大值的 1/3?我只是想了解我的数据上传程序是否有问题(通过 Dataflow 完成)。
也很好奇为什么我从来没有观察到接近 30K 的任何东西 Writes/sec,但我怀疑这是由于数据流方面的限制,因为我仍然限于 8 [=19] =] 审判时引用...
CPU 图表显示了表明 Bigtable 过载的最终指标。不幸的是,QPS 不是确定过载根本原因的理想指标,因为我们添加了批量写入 API。 Bigtable / Dataflow 加载使用云 bigtable 批量 APIs,它在一个批次中发送多个请求,现在 1 个查询可以有几十个更新请求。 Rows Updated Per Second 将是一个更好的指标,但遗憾的是,它在 Cloud Bigtable 端尚不存在。 Cloud Bigtable 步骤中的 Dataflow UI 中有一个等效指标,您可以使用该数字来判断 Cloud Bigtable 性能。
我使用的经验法则是在写入时每 1 个 Cloud Bigtable 节点约 3 个 Dataflow worker CPUs。您的作业很可能已正确配置了 8 个 CPU 和 3 个 Bigtable 节点。根据您的描述,我认为您的系统正在尽可能高效地工作。
我正在测试一个小型 Bigtable 集群(最少 3 个节点)。我在 Google 控制台上看到,随着写入 QPS 级别接近 10K,CPU 利用率接近建议的最大值 ~80%。
据我了解,QPS指标是针对整个实例的,而不是针对每个节点的?在那种情况下,为什么达到 CPU 阈值,而技术上实例的 QPS 负载仅为 30K 指导最大值的 1/3?我只是想了解我的数据上传程序是否有问题(通过 Dataflow 完成)。
也很好奇为什么我从来没有观察到接近 30K 的任何东西 Writes/sec,但我怀疑这是由于数据流方面的限制,因为我仍然限于 8 [=19] =] 审判时引用...
CPU 图表显示了表明 Bigtable 过载的最终指标。不幸的是,QPS 不是确定过载根本原因的理想指标,因为我们添加了批量写入 API。 Bigtable / Dataflow 加载使用云 bigtable 批量 APIs,它在一个批次中发送多个请求,现在 1 个查询可以有几十个更新请求。 Rows Updated Per Second 将是一个更好的指标,但遗憾的是,它在 Cloud Bigtable 端尚不存在。 Cloud Bigtable 步骤中的 Dataflow UI 中有一个等效指标,您可以使用该数字来判断 Cloud Bigtable 性能。
我使用的经验法则是在写入时每 1 个 Cloud Bigtable 节点约 3 个 Dataflow worker CPUs。您的作业很可能已正确配置了 8 个 CPU 和 3 个 Bigtable 节点。根据您的描述,我认为您的系统正在尽可能高效地工作。