为什么flask会占用我所有的内存?

kri*_*ina 6 python amazon-web-services flask

我创建了我能想象到的最简单的 Flask 应用程序:

import flask
from flask import Flask

application = Flask(__name__)

@application.route('/')
def index():
    return flask.jsonify(ok=True)
Run Code Online (Sandbox Code Playgroud)

我于 1/26 将此应用程序部署到 Elastic Beanstalk。自部署以来,它已为 0 个请求提供服务。这是使用Amazon 的内存监控脚本的内存使用情况图:

Flask,你为什么没有free?

您可以看到(我假设)垃圾收集发生在 1/29 的地方。但是到底是什么分配了这么多内存呢?如果这是正常的,我应该如何监控内存,以便我可以真正确定我的(真实)应用程序是否存在内存泄漏?这是 Flask 的错、Python 的错、AWS 的错,还是……其他原因?

编辑补充:我今天下午改用 mod_wsgi,但似乎没有任何效果。更新图(dips 正在部署新版本,需要尝试几次才能使配置正确):

WSGI 的持续内存问题

的输出free -m

             total       used       free     shared    buffers     cached
Mem:           532        501         31          0         81         37
-/+ buffers/cache:        381        150
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

MrN*_*ame 5

该内存是实际使用的还是缓存的?通过 SSH 连接到您的 beanstalk 实例并使用free命令来确定这一点。本文详细介绍了如何确定您的 RAM 是否已实际使用或缓存以及它的含义。