2009-07-06 37 views
2

我有這個配置在我的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切片的應用程序。我對錶現還不滿意。上面的設置是否有用?

回答

2

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

1

Apache是​​否使用prefork MPM或worker MPM是編譯時選項。無法在運行時更改它,因此無法加載MPM。

該指令表示「如果當前MPM爲xxx,則使用該塊內的配置,否則完全忽略該塊」。

所以,如果你想使用工人MPM,那麼你必須卸載prefork版本並安裝工人版本。

相關問題