2013-02-11 20 views
6

ho bisogno del tuo aiuto!Unicorn non può allocare memoria

Ho distribuito la mia app Rails in Ubuntu 12.04, utilizzando Nginx, MySQL, Solr e Unicorn.

Ogni servizio di cui è iniziato, invece di unicorno, che dice il seguente:

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 ha 1,5 GB di RAM ed è sufficiente per Unicorn:

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 

ho unicorn_rails v4.5.0

L'unicorno inizia dal seguente comando:

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

Cosa sto facendo di sbagliato qui?


Hmm, mi sono ricordato, che in precedenza avevo seguente strano errore:

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'" 

Forse è in qualche modo legato a problemi di memoria ...

+1

Ha avuto lo stesso problema occasionalmente. Ridurre i miei lavoratori dell'unicorno sembra aiutare ma non l'ho risolto. – ScotterC

+0

@AntonAL, quanti lavoratori stai cercando di iniziare? – WattsInABox

+0

Non sono sicuro che questo possa essere d'aiuto, ma ecco un link a uno dei miei progetti che avvia unicorno su Ubuntu 12.04 https://github.com/cyrusstoller/revtilt – Cyrus

risposta

2

Sembra l'errore sta accadendo quando forking nuovi processi . Potrebbe essere necessario ridurre i lavoratori nel file config/unicorn.rb. Ogni worker è un processo e ogni processo carica l'ambiente dell'applicazione nella RAM.

Problemi correlati