【问题标题】:Django memory leak: possible causes?Django内存泄漏:可能的原因?
【发布时间】:2023-03-08 17:40:01
【问题描述】:

我有一个 Django 应用程序,它时常会陷入内存泄漏。

我没有使用可能使内存过载的大数据,实际上应用程序“吃掉”内存增量(在一周内内存从约 70 MB 变为 4GB),这就是为什么我怀疑垃圾收集器丢失了一些东西,但我不确定。另外,这个增量似乎不依赖于请求的数量。

DEBUG=True、留下打开的文件等明显的事情......在这里不适用。

我正在使用uWSGI 2.0.3(+ nginx)和Django 1.4.5

我可以设置wsgi,以便在内存超过一定限制时重新启动服务器,但我不想这样做,因为这不是一个真正的解决方案。

是否存在垃圾收集器“无法正常工作”的众所周知的情况?能否提供一些代码示例?

是否有任何uWSGI + Django的配置可能导致这种情况?

【问题讨论】:

  • 存在内存泄漏的证据是什么?而且,我们需要查看一些实际代码。
  • 这还不足以证明从 400 MB 到 4G 的增量吗?您需要哪部分代码?
  • 回复:“您需要代码的哪一部分?”假装有人在问你这个问题。什么可以帮助你回答?我认为代码和配置将是一个好的开始。其他任何事情和人们都只是代表您猜测。
  • 知道了@hughdbrown,但我不能把整个项目代码放在这里,这也不是想法,因为你可以看到我的问题很灵活:“有没有众所周知的情况...", "是否有任何 uWSGI + Django 配置可能导致..." 以便了解 Django 中有关内存泄漏的一些众所周知的情况/问题。

标签: python django memory-leaks uwsgi


【解决方案1】:

我还没有找到我正在寻找的确切内容(每个项目都是一个世界!),但是根据一些线索和建议,我设法解决了这个问题。我与您分享一些链接,如果您遇到类似问题,它们可能会有所帮助。

django memory leaks, part Idjango memory leaks, part IIFinding and fixing memory leaks in Python

一些有用的 SO 答案/问题: Which Python memory profiler is recommended?Is there any working memory profiler for Python3Python memory leaksPython: Memory leak debugging

更新

pyuwsgimemhog 是一个新工具,可以帮助找出泄漏的位置。

【讨论】:

    【解决方案2】:

    Django 没有已知的内存泄漏问题。

    我遇到了类似的内存问题。我发现有一个缓慢的 SQL 导致高 DB CPU 百分比。在我修复了慢速 SQL 后,内存问题得到了修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2011-01-14
      相关资源
      最近更新 更多