2013-02-11 10 views
6

Ich brauche deine Hilfe!Unicorn kann keinen Speicher zuweisen

Ich habe meine Rails App in Ubuntu 12.04 mit Nginx, MySQL, Solr und Unicorn implementiert.

Jeder erwähnte Dienst gestartet wird, statt Einhorn, das sagt folgendes:

I, [2013-02-11T16:10:20.187989 #27547] INFO -- : Refreshing Gem list I, [2013-02-11T16:10:52.159198 #27547] INFO -- : unlinking existing socket=/var/www/staging/shared/unicorn.sock I, [2013-02-11T16:10:52.159488 #27547] INFO -- : listening on addr=/var/www/staging/shared/unicorn.sock fd=12 E, [2013-02-11T16:10:52.161513 #27547] ERROR -- : Cannot allocate memory - fork(2) (Errno::ENOMEM) /var/www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5.0/lib/unicorn/http_server.rb:496:in fork' /var/www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5.0/lib/unicorn/http_server.rb:496:in spawn_missing_workers' /var/www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5.0/lib/unicorn/http_server.rb:142:in start' /var/www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5.0/bin/unicorn_rails:209:in ' /var/www/staging/shared/gems/ruby/1.9.1/bin/unicorn_rails:23:in load' /var/www/staging/shared/gems/ruby/1.9.1/bin/unicorn_rails:23:in '

VDS 1,5 GB RAM hat, und es ist genug für Einhorn:

cat /proc/meminfo 
MemTotal:  1585152 kB 
MemFree:   989580 kB 
Cached:   425296 kB 
Active:   348504 kB 
Inactive:   175356 kB 
Active(anon):  98488 kB 
Inactive(anon):  76 kB 
Active(file):  250016 kB 
Inactive(file): 175280 kB 
Unevictable:   0 kB 
Mlocked:    0 kB 
SwapTotal:  204800 kB 
SwapFree:   204800 kB 
Dirty:    12 kB 
Writeback:    0 kB 
AnonPages:   98564 kB 
Shmem:    3604 kB 
Slab:    71680 kB 
SReclaimable:  66144 kB 
SUnreclaim:   5536 kB 

Ich habe unicorn_rails v4.5.0

Einhorn beginnt mit dem folgenden Befehl:

bundle exec unicorn_rails -c /var/www/staging/current/config/unicorn.rb -E production -D

Was mache ich hier falsch?


Hmm, ich erinnerte mich, dass zuvor hatte ich folgenden seltsamen Fehler:

failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.3-p327' -c 'cd /var/www/staging/current && bundle exec unicorn_rails -c /var/www/staging/current/config/unicorn.rb -E production -D'" 

Vielleicht ist es irgendwie zu Gedächtnisproblemen im Zusammenhang ...

+1

Hatte das gleiche Problem gelegentlich. Die Reduzierung meiner Einhornarbeiter scheint zu helfen, hat sie aber nicht gelöst. – ScotterC

+0

@AntonAL, wie viele Arbeiter versuchen Sie zu starten? – WattsInABox

+0

Nicht sicher, ob das helfen wird, aber hier ist ein Link zu einem meiner Projekte, das Unicorn auf Ubuntu 12.04 https://github.com/cyrusstoller/revtilt startet – Cyrus

Antwort

2

Es scheint der Fehler passiert, wenn neue Prozesse Forking . Möglicherweise müssen Sie die Worker in Ihrer Datei config/unicorn.rb reduzieren. Jeder Worker ist ein Prozess und jeder Prozess lädt die Anwendungsumgebung in den RAM.

Verwandte Themen