我有一个烧瓶应用程序和PostgreSQL数据库。从某个时间点开始,应用程序开始出现不稳定的行为:响应时间非常长,并且由于某些原因,Flask应用程序进程占用了60%的可用内存。最终(经过几天的正常运行时间,大约3到5天)应用程序变得不可用,因为与它的每次交互都需要超过一分钟的时间才能完成,或者完全超时。
如何诊断此行为?有没有合适的方法来确定延迟是从哪里来的,以及为什么要使用这么多内存?
发布于 2015-02-17 16:32:04
通过添加以下代码,您可以使用werkzeug的内置分析器分析Flask应用程序:
from werkzeug.contrib.profiler import ProfilerMiddleware
from app import app
app.config['PROFILE'] = True
app.wsgi_app = ProfilerMiddleware(app.wsgi_app, restrictions = [30])
app.run(debug = True)或者,您可以使用Flask-runner从命令行运行它
$ python hello.py --profile --profile-count 30关于Postgres,看看logging documentation。
https://stackoverflow.com/questions/28557057
复制相似问题