2012-11-23 14 views
3

我有乘客錯誤。錯誤PhusionPassenger :: Rack :: ApplicationSpawner :: Error

我在VPS中設置了redmine。當我在webrick中跑時它運行正常。我曾經乘客在端口運行管理平臺80

路徑:USR /本地/ Apache/conf目錄/ httpd.conf中

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so 
PassengerRuby /usr/bin/ruby 
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17 

PassengerMaxPoolSize 2 
PassengerMaxInstancesPerApp 2 
PassengerPoolIdleTime 100 


<VirtualHost 112.78.6.191:80> 
    ServerName projects.gzerone.com 
    ServerAlias www.projects.gzerone.com 
    DocumentRoot /home/gzerone/public_html/redmine-2.1.2/public 
RailsEnv production 
    #ErrorLog /usr/local/apache/logs/redmine.error.log 
#RackBaseURI /rails 
    ServerAdmin [email protected] 
    #UseCanonicalName Off 
    #CustomLog /usr/local/apache/domlogs/projects.gzerone.com combined 
    #CustomLog /usr/local/apache/domlogs/projects.gzerone.com-bytes_log "%{%s}t %I .\n%{%s}t %O ." 
    ## User gzerone # Needed for Cpanel::ApacheConf 
<Directory /home/gzerone/public_html/redmine-2.1.2/public> 
    #AllowOverride all 
    Allow from all 
    # MultiViews must be turned off. 
    Options -MultiViews 
</Directory> 

<IfModule mod_suphp.c> 
    suPHP_UserGroup gzerone gzerone 
</IfModule> 
<IfModule !mod_disable_suexec.c> 
    <IfModule !mod_ruid2.c> 
     SuexecUserGroup gzerone gzerone 
    </IfModule> 
</IfModule> 
<IfModule mod_ruid2.c> 
    RUidGid gzerone gzerone 
</IfModule> 
ScriptAlias /cgi-bin/ /home/gzerone/public_html/redmine-2.1.2/public/cgi-bin/ 


# To customize this VirtualHost use an include file at the following location 
# Include "/usr/local/apache/conf/userdata/std/2/gzerone/projects.gzerone.com/*.conf" 

enter image description here

在Apache中的error_log中:

[ pid=23984 thr=23634338875820 file=utils.rb:176 time=2012-11-23 10:39:34.067 ]: *** Exception Errno::ENOMEM in PhusionPassenger::Rack::ApplicationSpawner (Cannot allocate memory - fork(2)) (process 23984, thread #<Thread:0x2afd98bf1358>): 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/utils.rb:462:in `fork' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/utils.rb:462:in `safe_fork' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:357:in `__send__' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:180:in `start' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/rack/application_spawner.rb:129:in `start' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:253:in `spawn_rack_application' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:246:in `spawn_rack_application' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:357:in `__send__' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously' 
from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/helper-scripts/passenger-spawn-server:99 

我希望。你給任何建議來解決它。

+0

謝謝塔斯。首先,我像你一樣想。但我檢查了內存,我運行它。我總是有600-> 700 MB的可用內存 –

+0

也許它已經沒有線程了? 'thr = 23634338875820' – Reactormonk

+0

是的。你能給我一些解決它的建議嗎?請給我解釋一下錯誤。 –

回答

0

有同樣的問題,我相信它與乘客控制和優化選項,如PassengerMaxPoolSize有關。您可能需要將它設置爲高於2.我注意到錯誤發生在第一次有人在另一臺計算機上同步查看我的應用程序時發生。

要快速修復,請嘗試進入項目目錄並通過bundle install重新綁定應用程序,然後重新啓動Web服務器,sudo service httpd restart這應重置Passenger。

此外,丟失的config.ru文件導致相同的錯誤消息。你可能想看看討論here

希望我能告訴你爲什麼發生這種情況,希望有人會。我很想了解mysef的確切問題,以便永久修復。

1

正如您在日誌中看到的,ApplicationSpawner由於內存不足錯誤而崩潰。你沒有足夠的記憶。

有幾件事情可以做:

  • 採用保守產卵,這樣你就沒有一個ApplicationSpawner過程。由於您的池大小僅爲2,因此使用ApplicationSpawner不會帶來任何好處。
  • 添加更多交換空間。
  • 升級你的RAM。
相關問題