我是一个Django应用程序,经常会遇到内存泄漏。
我没有使用可能使内存过载的大数据,事实上应用程序“吃掉了”。内存递增(在一周内存从大约70 MB到4GB),这就是为什么我怀疑垃圾收集器丢失的东西,我不确定。此外,似乎此增量不依赖于请求数。
明显的事情,如DEBUG=True
,留下打开的文件等......这里不适用。
我使用uWSGI 2.0.3
(+ nginx)和Django 1.4.5
我可以设置wsgi
以便在内存超出特定限制时重新启动服务器,但我不想这样做,因为那不是真正的解决方案。
有没有众所周知的情况,垃圾收集器"没有正常工作"?它能提供一些代码示例吗?
是否有任何可能导致此问题的uWSGI + Django配置?
答案 0 :(得分:20)
我还没有找到我正在寻找的确切内容(每个项目都是一个世界!),但是根据一些线索和建议,我设法解决了这个问题。如果您遇到类似问题,我会与您分享一些可能有用的链接。
django memory leaks, part I,django memory leaks, part II,Finding and fixing memory leaks in Python,Optimized script for nginx and uwsgi on ubuntu 12.04(这适用于WEB2PY,但通过uWSGI提供了一些'拐杖)和{{3} }。
一些有用的答案/问题: Debugging memory leaks in a WSGI application,Which Python memory profiler is recommended?,Is there any working memory profiler for Python3和Python memory leaks
答案 1 :(得分:0)
Django 没有已知的内存泄漏问题。
我遇到了类似的内存问题。我发现有一个缓慢的 SQL 导致高 DB CPU 百分比。修复慢SQL后内存问题修复。