我正在将图像(每个<10MB)上传到一个简化的处理程序(如下)来展示这个问题。在 F1(128MB 内存)实例上服务约 5 个请求后,我超出了内存限制:“在服务 6 个请求后,超过了 152.414 MB 的软私有内存限制”
在 F2(256MB 的 ram)实例上,我收到了更多请求,但数量不多:“在服务 19 个请求后,超过了 258.156 MB 的软私有内存限制”
示例代码:
import webapp2
class FileUploader(webapp2.RequestHandler):
def post(self):
test = self.request.get('file')
self.response.out.write('hi')
app = webapp2.WSGIApplication([('/leak-uploader-example', FileUploader)],
debug=True)
日志中的文本表明我的应用程序可能存在内存泄漏。请求完成后,问题似乎可能与 Python 或 App Engine 垃圾收集有关。关于如何防止我的实例在几个请求后被终止的任何建议?
更新——我看到使用 webapp 框架(而不是 webapp2)的相同行为:“在服务 6 个请求后,超过了 143.121 MB 的软私有内存限制”