【发布时间】:2012-08-28 06:24:33
【问题描述】:
您知道记录 django 应用程序每个请求的内存使用情况的有效方法吗?
我有一个 apache/mod_wsgi/django 堆栈,它通常运行良好,但有时一个进程最终会占用大量内存。服务器最终内存不足,交换了很多,并且服务速度大大降低。
这种情况很难解决,因为我不知道该行为应该归咎于哪个请求,我无法重现它。
我想在生产环境中部署一些东西,以最小的开销记录进程在每次请求之前和之后的内存使用情况。
在我开始重新发明轮子之前,我的 djangoists 社区是否知道任何现有的解决方案来解决这个问题? 建议、中间件、sn-p 或 apache 日志配置值得赞赏。
(我认为)我不需要的是:
- 一组开发阶段分析/调试工具,我已经知道一些,如果我知道要分析/调试什么,我会使用它们,它看起来有点太多了,永远监控生产中运行的服务。最重要的是,这些 tol 通常显示的是代码碎片的 mem 使用报告,这将有助于查明错误的请求。
- 关于如何优化 django 应用程序的内存使用的一般建议,读起来总是很好,但这里的想法是“如何有效地跟踪需要优化的请求”。
我最接近的搜索结果:
【问题讨论】:
-
也许这个 modwsgi 选项 'maximum-requests=nnn' 会有所帮助。 "定义一个守护进程在关闭和重新启动之前应该处理的请求数限制。"
-
@freestyler:是的,我已经在使用它了,但它有点没抓住重点。这个想法是提出轻微的错误请求以实际修复它们,而不是定期清理系统(这也可能有用)。此外,内存消耗请求可能会在重启后提前出现,这里没有相关性。
标签: python django apache memory-leaks