【发布时间】:2017-12-15 01:35:00
【问题描述】:
场景-
我在 App Engine 上运行 B* 实例。我有一个后台 ETL 相关任务(用 python 编写)安排为 App Engine 上的 cron 作业。 当时间到达时,cron 发起一个 http 请求来启动任务并运行而不返回响应,直到任务完成。 当任务执行时,它通常会消耗“X”MB 的 RAM。任务完成并返回 200 OK 后,App Engine 实例监控仍显示“X”MB 的 RAM 正在使用中。
请帮助我理解以下内容-
- 如果一个实例只运行一个任务,并且在完成它之后,该任务消耗的内存何时会被释放?
- 是否需要运行
gc.collect()来显式调用垃圾收集器以释放 RAM? - 释放 RAM 的唯一方法是重新启动实例?
PS:这与 NDB 完全无关,我的任务是从 Bigquery 获取输入,执行一些 ETL 操作,然后将其流式传输到 Bigquery。
【问题讨论】:
标签: google-app-engine google-app-engine-python