我正在开发一个新的应用程序。我还处于发展阶段。但是,每当我重新启动 apache 时,我的应用程序都会获得140MB的内存上限。而我的其他(更旧和更复杂的)应用程序获得了40MB的. 这导致 webfaction 向我发送有关内存使用情况的消息。默认情况下,Apache 以 2 个进程启动,导致内存使用量超过 300MB。我将其更改为 1 个过程,如下所示:
MaxSpareThreads 3
MinSpareThreads 1
ServerLimit 1
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 5
WSGIDaemonProcess tipleaders processes=1 threads=6 python-path=/home/<<USERNAME>>/webapps/<<WEBSITE>>:/home/<<USERNAME>>/webapps/<<WEBSITE>>/lib/python2.7:/home/<<USERNAME>>/webapps/<<WEBSITE>>/<<WEBSITE>> maximum-requests=10
内存使用量不会随着每个请求而增加(所以我猜这不是内存泄漏问题)。
它只是从一个非常高的内存上限(~150MB)开始。
有什么想法我该怎么办?
PS:这是我在views.py
http://dpaste.com/744785/中的主要进口,
其他进口在这里:http
models.py
://dpaste.com/744786/ ,在这里:http ://dpaste.com/744787/urls.py
settings.py
编辑 PS2:我的整个网站都在使用 SSL
根据要求进行编辑,该项目不与媒体打交道。没有图片,没有视频。这是一个简单的网站,它解析 2 个带有匹配项(事件和结果)的 xml 文件并将它们显示给用户。该网站没有广告(只有一个来自联属公司)。没有什么大图。处于开发阶段的站点只有10个用户,已插入数据库的体育赛事不超过5000个。
编辑:我安装了 django-devserver (https://github.com/dcramer/django-devserver)
这就是我得到的:
>python manage.py runserver
[profile] heap size is 7.9 MB
[profile] heap size is 7.9 MB
[sql] (219ms) 2 queries with 0 duplicates
[profile] Total time to render was 0.14s
[profile] 5.3 MB allocated, 13.0 KB deallocated, heap size is 13.3 MB
[sql] (219ms) 2 queries with 0 duplicates
[profile] Total time to render was 1.08s
[profile] 404.8 KB allocated, 18.6 KB deallocated, heap size is 13.7 MB
[12/May/2012 12:42:38] "GET / HTTP/1.1" 200 146587 (time: 6.93s; sql: 219ms (2q)
我仍然对为什么 Apache 开始为我的应用程序分配 140MB 感到困惑。