5

我正在将图像(每个<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 的软私有内存限制”

4

1 回答 1

2

为什么不将 Blobstore 用于您的图像?https://developers.google.com/appengine/docs/python/blobstore/#Python_Uploading_a_blob

于 2013-08-08T14:07:08.140 回答