使用mod_wsgi + apache运行多个django站点会导致内存问题

时间:2015-02-28 10:59:05

标签: python django apache mod-wsgi

我目前正在使用mod wsgi运行50多个Django安装,并注意到apache没有丢弃内存(所以它只是保持越来越多,然后网站在交换磁盘填充时停止运行)。我还在这些服务器上托管了一些PHP站点。

当前的wsgi配置如下所示:

WSGIScriptAlias / /var/www/vhosts/glenlivet/tar/src/core/wsgi.py
WSGIDaemonProcess tar.sljol.info python-path=/var/www/vhosts/glenlivet/tar/src:/var/www/vhosts/.virtualenvs/glenlivet/lib/python2.7/site-packages
<Location />
WSGIProcessGroup tar.sljol.info
</Location>

我不是专家,在这种类型的配置中,任何人都可以建议如何最好地设置每个虚拟主机吗?

由于

1 个答案:

答案 0 :(得分:0)

有一个maximum-requests选项可以添加到WSGIDaemonProcess指令中,这可以帮助清理apache为Django应用程序保留的内存。

以下是有关此maximum-requests选项...

的快速文档摘要
  

应该考虑的另一个选项是,在守护进程关闭和重新启动之前,应该允许守护进程接受的最大请求数。这应该用于由于应用程序本身或第三方扩展模块的问题导致内存使用增加的问题。   Documentation

你将承担apache必须重新加载Django应用程序的开销,但由于apache不释放内存,可能比交换更有益。

您可能需要进行一些基准测试,以了解您的麻烦应用程序的最大请求数量,但下面的代码可能是一个很好的起点......

WSGIDaemonProcess tar.sljol.info python-path=/var/www/vhosts/glenlivet/tar/src:/var/www/vhosts/.virtualenvs/glenlivet/lib/python2.7/site-packages maximum-requests=10000