2013-02-11 4 views
6

Potrzebuję twojej pomocy!Jednorożec nie może przydzielić pamięci

Mam wdrożoną aplikację Rails w Ubuntu 12.04, używając Nginx, MySQL, Solr i Unicorn.

Każdy wspomniano usługa jest uruchomiona, zamiast jednorożca, który mówi, co następuje:

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 ma 1,5 GB pamięci RAM i to wystarczy dla jednorożec:

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 

mam unicorn_rails v4.5.0

Jednorożec rozpoczyna się według następującego polecenia:

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

Co robię źle tutaj?


Hmm, przypomniałem sobie, że wcześniej miałem następujący dziwny błąd:

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

Może to jest w jakiś sposób związany z problemami z pamięcią ...

+1

Od czasu do czasu wystąpił ten sam problem. Zredukowanie moich pracowników jednorożca wydaje się pomagać, ale ich nie rozwiązałem. – ScotterC

+0

@Antonale, ilu pracowników próbujesz uruchomić? – WattsInABox

+0

Nie jestem pewien, czy to pomoże, ale tutaj jest link do jednego z moich projektów, który uruchamia jednorożca na Ubuntu 12.04 https://github.com/cyrusstoller/revtilt – Cyrus

Odpowiedz

2

Wydaje się, że błąd się dzieje kiedy rozwidlone nowych procesów . Może być konieczne zmniejszenie liczby pracowników w pliku config/unicorn.rb. Każdy pracownik jest procesem, a każdy proces ładuje środowisko aplikacji do pamięci RAM.