【发布时间】:2019-04-21 21:14:18
【问题描述】:
我目前在(Google Cloud 的 App Engine)上运行一个“小型”flask 应用程序,用于集成应用程序(它侦听 webhook 并调用其他 API)。问题是我在 35 - 45 个请求后一直超过软内存限制。
由于我打算将这个系统的负载增加几个数量级,这让我很担心。
对我来说似乎有三种可能的解决方案,但我不知道从哪里开始:
- 切换到 DataFlow:我已经在两个 App Engine 实例之间使用 Pub/Sub 来增加更高的一致性,但可能 App Engine 是错误的平台或此类平台。
- 修复内存泄漏:这里的问题可能是内存泄漏,但我找不到合适的工具来分析 App Engine 平台上的内存使用情况(在我的本地机器上,Python 进程的使用情况徘徊在 51MB 左右)
- 将系统划分为多个微服务以减少每个实例的占用空间。 (不过,维护代码库可能会更难)。
非常欢迎任何建议或经验。
【问题讨论】:
-
@snakecharmerb 这可能是个好建议。你知道当达到软内存限制时是否有某种方法可以检查正在处理的并发请求数?
-
如果您正在考虑切换平台,Cloud Functions 可能比 DialogFlow 更适合。它有一个新的 Python 3.7 运行时。
-
@Dustin 我记得我遇到了更严格的云功能内存限制,但现在它们似乎不那么严格了(cloud.google.com/functions/quotas)。也许我应该再试一次。
标签: python google-app-engine memory out-of-memory google-cloud-dataflow