哪位apache工作人员需要和乘客一起使用?

问题描述:

我有这个配置在我的apache2.conf哪位apache工作人员需要和乘客一起使用?

<IfModule mpm_prefork_module> 
StartServers   5 
MinSpareServers  5 
MaxSpareServers  10 
MaxClients   150 
MaxRequestsPerChild 0 
</IfModule> 
# worker MPM 
# StartServers: initial number of server processes to start 
# MaxClients: maximum number of simultaneous client connections 
# MinSpareThreads: minimum number of worker threads which are kept spare 
# MaxSpareThreads: maximum number of worker threads which are kept spare 
# ThreadsPerChild: constant number of worker threads in each server process 
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module> 
StartServers   2 
MaxClients   15 
MinSpareThreads  4 
MaxSpareThreads  5 
ThreadsPerChild  15 
MaxRequestsPerChild 50000 
</IfModule> 

现在我很困惑在这里。

  • 哪个模块在哪些条件下被加载?
  • phusion家伙建议使用worker模块。由于两者都存在于apache conf文件中,我必须评论mpm_prefork_module还是保持原样?

以下是为Apache我的乘客的conf文件:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so 
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4 
PassengerRuby /usr/bin/ruby1.8 
PassengerMaxPoolSize 3 
PassengerPoolIdleTime 999999 
RailsFrameworkSpawnerIdleTime 0 
RailsAppSpawnerIdleTime 0 
  • 我在slicehost运行只是一个单一的Rails 2.3.2 256MB切片的应用程序。我对表现还不满意。上面的设置是否有用?

一般来说,人们问他们的VPS什么时候开始交换,是你的情况么?这个线程是非常有益的再利用“免费”和“顶”并切换到MPM工人

http://forum.slicehost.com/comments.php?DiscussionID=3313

这些信息关于没有得到谈论得很多

http://wiki.ninjafocus.net/Ruby_on_Rails

的设置

http://programming-gone-awry.blogspot.com/2009/06/how-to-save-much-ram-when-running-rails.html

a。运行httpd/apache/httpd2/apache2 -l来查看哪个mpm被加载(通常是prefork)
b。为了得到工人模块,你必须安装它,但我从来没有做过,但我知道它的一个或者一个命题,它们不能共存
c。如果您正在预测任何类型的流量,请务必将MaxClients(在prefork配置中)设置为大约20(开始时),否则您的应用/乘客将在高流量时段内呕吐
d。对于乘客的设置,我会跟

PassengerMaxPoolSize 2
PassengerPoolIdleTime启动0
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime 0

这里做的事情就是保持框架产卵,产卵应用程序和App实例在内存最长可能的时间,所以它不需要经过一段时间的闲置后重新生成应用程序实例或框架(如果您的网站流量不高)。 这就像您将得到的一样,运行一个永远在线的杂种类型设置。

+0

太开球下面......老姨的答案,找出您正在运行只运行 阿帕奇/的httpd /的apachectl /(无论你的Apache命令)-l 什么MPM,你会看到的模块上市。 享受。 – concept47 2009-08-29 10:14:28

+0

我在Ubuntu Intrepid上,当我按照你的建议发出命令时, httpd/apache/httpd2/apache2 -l 找不到cmd。我GOOGLE了并得到了另一个cmd, apache2 -l 这也不起作用? 是应该工作或是否有其他CMD找出哪个MPM加载了Apache? – Autodidact 2009-08-29 11:09:29

Apache是​​否使用prefork MPM或worker MPM是编译时选项。无法在运行时更改它,因此无法加载MPM。

该指令表示“如果当前MPM为xxx,则使用该块内的配置,否则完全忽略该块”。

所以,如果你想使用工人MPM,那么你必须卸载prefork版本并安装工人版本。