2010-10-31 56 views
1

我有一个OSQA(python/django q &应用程序)安装服务8个不同的网站。这些网站都在开发中,接收的流量很小。该服务器是一个具有512 mb RAM的虚拟专用服务器。OSQA apache内存占用

Apache仅在Nginx后面提供mod_wsgi的动态页面。我无法阻止Apache每次请求消耗越来越多的内存,直到服务器窒息。

我对配置参数进行了尝试,但没有多少运气来最小化内存占用。随着apache2.conf以下mpm_prefork参数:

StartServers   2 
MinSpareServers  1 
MaxSpareServers  4 
MaxClients   4 
MaxRequestsPerChild 100 

2 Apache进程开始使用4 MB和第一请求后有4个进程与每个近50 MB以及与每个新请求的那些4个进程稳步爬上每个近200 MB。

我觉得发生了什么问题。任何建议,非常感谢。

回答

1
KeepAlive Off 
MaxSpareThreads 3 
MinSpareThreads 1 
ServerLimit 3 
SetEnvIf X-Forwarded-SSL on HTTPS=1 
ThreadsPerChild 2 

WSGIDaemonProcess osqaWSGI processes=2 python-path=/web/osqa_server:/web/osqa_server/lib/python2.6 threads=1 maximum-requests=550 
WSGIProcessGroup osqaWSGI 

的httperf然对这个有10000次并发命中和它仍然屹立不倒。

+0

您的意思是MinSpareServers而不是MinSpareThreads?因为MinSpareThreads不被识别。 – omat 2010-11-01 12:59:28

+0

取决于您是否使用prefork或worker。 MinSpareServers表示您正在使用prefork。见http://www.camelrichard.org/apache-prefork-vs-worker – 2010-11-01 17:44:20

+0

谢谢,现在看起来好多了。但我有点困惑。在添加WSGIDaemonProcess部分之后,现在从一开始就有4个进程。进程= 2是否与处理器的数量有关? 4处理器机器最适合什么? – omat 2010-11-01 18:55:40