为什么 Google App Engine 第二代比第一代慢?

为什么 Google App Engine 第二代比第一代慢?

我们有一个在 Python 2.7 中运行的 App Engine 标准环境应用程序,我们将其升级到 Python 3.11。

旧应用程序使用的服务/框架:

  • 共享 Memcache
  • 任务队列
  • Google 的 Discovery 库(用于 Big Query)
  • webapp2框架

新应用使用的服务/框架:

  • 烧瓶
  • 共享 Memcache
  • 任务队列
  • 存储写入 API
  • webapp2 已被删除,因为它与 Python 3 不兼容。

我们按照 Google 的指南升级我们的应用程序并使用旧的捆绑服务:https://cloud.google.com/appengine/docs/standard/python3/services/access#python-3

代码库很简单。它读取请求并将其存储在 Big Query 中。它使用 Memcache 服务来限制请求,并使用任务队列在同一应用程序中调用“存储到 Bigquery”端点。

升级后,我们看到了以下情况:

延迟更高:从约 50 毫秒到约 250 毫秒 实例数量更多:使用相同工作负载时,实例数量从 6 个增加到 50 个

我们尝试运行 Google 的分析器,但平台无法安装适用于 Python 3.11 的包。

我们创建并部署了一个“hello world”应用程序,以解决 Python 3.11、Flask、Memcache、Taskqueue 和 BigQuery 流插入的性能问题。

我们发现 BigQuery 旧版插入功能导致延迟约 500 毫秒。然后我们实施了存储写入 API,但最终延迟约为 250 毫秒,这与之前的性能无法相比。

这是 App Engine 平台的问题吗?还有其他措施可以避免这种延迟吗?

我们期望其性能与之前的版本相同甚至更好。

相关内容