如何在Gunicorn或Flask开发服务器中使用Memray做内存分析?
解决Memray分析Flask项目内存的问题
针对Flask开发服务器(flask run)的方案
方案1:使用python -m flask启动
直接将flask命令替换为python -m flask,让Memray正确识别Python进程,避免找不到脚本的错误:
memray run python -m flask run --port 80
方案2:指定项目入口脚本
如果你的项目有明确的入口文件(比如app.py,包含app = Flask(__name__)),可以直接运行该脚本并配置Flask环境:
FLASK_APP=app.py FLASK_ENV=development memray run app.py run --port 80
若入口脚本里已经写了启动代码(if __name__ == '__main__': app.run()),可简化为:
memray run app.py --port 80
针对Gunicorn部署的方案
用python -m gunicorn替代直接的gunicorn命令,让Memray包裹Python进程:
memray run python -m gunicorn app:app -w 4 -b 0.0.0.0:80
注意:app:app需替换为你的实际入口模块(如main)和Flask实例名(如app),-w(工作进程数)和-b(绑定地址)参数根据部署需求调整。
后续分析
执行上述命令后,Memray会生成.bin格式的内存追踪文件,可通过以下命令分析:
- 生成火焰图:
memray flamegraph <追踪文件名.bin> - 查看内存统计:
memray stats <追踪文件名.bin>
内容的提问来源于stack exchange,提问作者Serob
相关产品推荐
相关产品推荐

