|
|
1
50
确保您没有保留对数据的全局引用。这可以防止python垃圾收集器释放内存。
不使用
如果你能从你的需求中删除apache,那对你的内存来说会更好。
编辑 :我不明白如何切换到mod_wsgi” 棘手的 “。这应该是一项非常容易的任务。请详细说明您在开关方面遇到的问题。 |
|
|
2
28
如果您在mod_wsgi下运行,并且由于它符合wsgi标准,因此可能正在生成,您可以使用 Dozer 查看您的内存使用情况。 在mod_wsgi下,只需在wsgi脚本的底部添加以下内容:
然后将浏览器指向 http://domain/_dozer/index 查看所有内存分配的列表。 我还将添加我对mod_wsgi的支持。它在性能和内存使用方面与mod_python有着天壤之别。Graham Dumpleton对mod_wsgi的支持非常出色,无论是在积极开发方面,还是在帮助邮件列表上的人优化他们的安装方面。大卫·克莱默 curse.com 已经发布了一些图表(不幸的是,我现在似乎找不到),显示在高流量网站上切换到mod_wsgi后,cpu和内存使用量急剧减少。几个django开发人员已经换了。说真的,这很简单:) |
|
|
3
15
以下是我所知道的Python内存分析器解决方案(与Django无关): 免责声明:我持有后者的股份。 单个项目的文档应该让你了解如何使用这些工具来分析Python应用程序的内存行为。 以下是一个很好的“战争故事”,也给出了一些有用的提示: |
|
|
4
5
此外,检查您是否没有使用任何已知的泄漏器。众所周知,由于unicode处理中的错误,MySQLdb在Django中泄漏了大量内存。除此之外, Django Debug Toolbar 可能有助于你追踪猪。 |
|
|
5
4
除了不保留对大型数据对象的全局引用外,尽可能避免将大型数据集加载到内存中。 在守护进程模式下切换到mod_wsgi,并使用Apache的worker mpm而不是prefork。后一步可以让你以更少的内存开销为更多的并发用户提供服务。 |
|
|
6
4
网络派系实际上有 some tips 用于降低django内存使用率。 主要观点:
|
|
|
7
3
mod_wsgi的另一个优点是:设置一个
但即使你 做 有内存泄漏,这应该可以防止进程大小变得太大,而不必中断对用户的服务。 |
|
|
8
3
以下是我用于mod_wsgi的脚本(名为wsgi.py,放在django项目的根目录中):
根据需要调整myproject.settings和路径。我将所有输出重定向到/dev/null,因为默认情况下mod_wsgi会阻止打印。请改用日志记录。 对于apache:
希望这至少能帮助你设置mod_wsgi,这样你就可以看看它是否有什么不同。 |
|
|
9
1
缓存:确保它们被刷新。有些东西很容易进入缓存,但由于缓存引用,永远不会被GC。 Swig'd代码:确保所有内存管理都正确完成,在python中很容易错过这些,尤其是在第三方库中 监控:如果可以的话,获取有关内存使用和点击的数据。通常,您会看到某种类型的请求与内存使用之间的相关性。 |
|
|
10
1
我们在Django中偶然发现了一个关于大型站点地图(10000个项目)的bug。Django在生成站点地图时似乎试图将它们全部加载到内存中: http://code.djangoproject.com/ticket/11572 -当谷歌访问该网站时,有效地杀死了apache进程。 |
|
|
TheKing · 为什么数组的地址可以有负值? 3 年前 |
|
|
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
|
|
joe · 一页可以同时在两个工作集中吗? 7 年前 |
|
|
Jaques · “.exe”已触发断点 7 年前 |
|
|
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
|
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
|
|
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |