/etc/apache2/sites-enabled/myproject.conf的一部分:
WSGIDaemonProcess myporject user=tester group=tester processes=2 threads=5 python-eggs=xxx display-name=xxx
当一个用户开始浏览网站时,使用的内存增加了80M(来自free -m
的输出),即使用户注销并关闭浏览器,内存使用率也不会下降,除非运行{ {1}}。我尝试了service apache2 restart
和worker mode
,但仍未发布。
当prefork mode
设置为60秒时,注销后内存使用率将下降60秒。
我是apache2和wsgi配置的新手。我只是想知道设置inactivity-timeout
是否是内存使用率下降的好方法?缺少任何其他重要配置?
欢迎任何评论。如果需要更多信息,请告诉我。感谢
答案 0 :(得分:0)
mod_wsgi
启动两个运行Django程序的进程(实际上这两个进程是你的Django程序)。请求完成后,流程将继续运行,准备好提供新请求。
您所指的请求需要80 MB内存,因此Python会从操作系统请求大量内存,操作系统会将其提供给Python。当请求完成时,不再需要大部分内存,并且它未被使用。但是,Python不会将其发布到操作系统。当Python再次需要内存时,它将重用这些80 MB。在大多数情况下,这种工作方式令人满意; Python没有释放内存不是问题,因为它会重新使用它,所以通常你不需要做任何事情。
inactivity-timeout
使mod_wsgi
在60秒后重启进程,因此新进程尚未提供请求,因此不会占用大量内存。