【问题标题】:Google Cloud Bigtable Python Client Performance IssueGoogle Cloud Bigtable Python 客户端性能问题
【发布时间】:2018-03-26 04:37:36
【问题描述】:

我在使用 Google Cloud Bigtable Python 客户端时遇到了性能问题。我正在开发一个烧瓶 API,它可以写入和读取 GCP Bigtable 实例。 API使用python客户端与Bigtable通信,并部署到GCP App Engine柔性环境中。

在低流量下,API 工作正常。然而,在负载测试期间,与不与 Bigtable 通信的类似端点相比,读取和写入 Bigtable 的端点性能大幅下降。此外,即使在 App Engine 中关闭了运行状况检查,大部分发往端点的请求都会收到 502 Bad Gateway

我知道客户目前处于 Alpha 阶段。我想知道性能问题是否已知,或者是否有人也遇到过同样的问题

更新

我找到了一份来自 Google 的文档说明:

网络连接存在问题。网络问题可以 降低吞吐量并导致读取和写入花费的时间比 通常。特别是,如果您的客户不是,您会看到问题 在与您的 Cloud Bigtable 集群相同的地区运行。

就我而言,我的客户位于不同的区域,通过将其移动到同一区域,性能得到了巨大的提升。但是性能问题仍然存在,文档中的建议是将客户端与 Bigtable 放在同一区域。

我也考虑过使用容器引擎或计算引擎来更容易指定区域,但我想继续使用 App Engine 的自动缩放功能和托管服务。

【问题讨论】:

    标签: google-app-engine google-cloud-platform bigtable google-cloud-bigtable google-cloud-python


    【解决方案1】:

    Bigtable 客户端需要 3 毫秒到 20 毫秒来完成每个请求,并且由于 python 是单线程的,在此期间它只会等待响应返回。我们找到的最佳解决方案是针对任何写入,将请求发布到 Pubsub,然后使用 Dataflow 写入 Bigtable。它的速度要快得多,因为在 Python 中发布一条消息需要不到 1 毫秒的时间才能完成,而且因为 Dataflow 可以设置为与 Bigtable 完全相同的区域,而且它很容易并行,所以它可以写得更快。

    虽然没有解决需要频繁读写需要瞬时的场景

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 2020-04-14
      • 2019-05-09
      • 1970-01-01
      • 2019-01-07
      相关资源
      最近更新 更多