内存泄漏导致 nginx 烧瓶中的 bu stringio

Posted

技术标签:

【中文标题】内存泄漏导致 nginx 烧瓶中的 bu stringio【英文标题】:memory leak caused bu stringio in flask with nginx 【发布时间】:2018-08-10 10:33:28 【问题描述】:
@app.route('/')
def index():
strIO = StringIO.StringIO()
strIO.write('Hello from Dan Jacob and Stephane Wirtel !')
strIO.seek(0)
return send_file(strIO,
                 attachment_filename="testing.txt",
                 as_attachment=True)

在上面的代码中,我们可以使用StringIO来避免在下载的时候使用临时文件,但是当文件很大的时候,我们可以发现,如果我们多次下载,这个进程的内存是在增加的,而且内存不会减少.

有人知道如何解决这个问题吗?谢谢!

【问题讨论】:

【参考方案1】:

StringIO.close() 或在 Python 3.x 上使用 with 语句。

【讨论】:

服务器返回后应该释放内存,所以我不能使用'StingIO.close()'或with,否则会导致下载失败。

以上是关于内存泄漏导致 nginx 烧瓶中的 bu stringio的主要内容,如果未能解决你的问题,请参考以下文章

简单查询导致 Django 中的内存泄漏

是啥导致了netty中的这种内存泄漏

由于 Netty 中的 ByteBuffers 导致的内存泄漏

为啥使用“新”会导致内存泄漏?

LeakCanary检测内存泄漏

PhotoCaputure 导致 Unity 中的内存泄漏