我们有一个在 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 平台的问题吗?还有其他措施可以避免这种延迟吗?
我们期望其性能与之前的版本相同甚至更好。