2014-11-18 21 views
6

Hostuję swoją aplikację Rails na Ubuntu 12.04 VPS, Nginx + Unicorn, po wdrożeniu wszystko jest w porządku, ale kilka godzin później, kiedy ssh do VPS otrzymuję to komunikatSSH i -bash: fork: Nie mogę przydzielić pamięci VPS Ubuntu

-bash: fork: Cannot allocate memory 

-bash: wait_for: No record of process 4201 

-bash: wait_for: No record of process 4201 

Jeśli uruchomić dowolne polecenie, to po prostu wrócić

-bash: fork: Cannot allocate memory. 

Odpowiedz

10

Wydaje masz zabraknie pamięci. Wiele serwerów VPS jest skonfigurowanych bez wymiany, więc gdy zabraknie pamięci, zabije wszystko w pozornie losowy sposób.

Najprostszym sposobem, aby to naprawić, jest zwiększenie ilości pamięci przydzielonej do VPS, prawdopodobnie kosztującej więcej pieniędzy. Następnym najlepszym sposobem (innym niż uruchamianie mniejszej ilości rzeczy i pamięci optymalizującej wszystko działające) byłoby dodanie partycji wymiany lub pliku wymiany.

Dla pliku wymiany 1GB (jako root):

dd if=/dev/zero of=/swapfile bs=1M count=1024 
mkswap /swapfile 
swapon /swapfile 

Pamiętaj, aby dodać go do/etc/fstab też jako:

/swapfile none swap defaults 0 0 

To pozwoli wrócić po restarcie.

+0

Dzięki za to też o tym myślałem, ale dostałem 1G RAM i zainstalowałem świeżą aplikację Railsową bez ruchu, w jaki sposób mogła zużyć pamięć? – user1883793

+0

Moje podejrzenie byłoby czymś, co w aplikacji szyny przechowywuje niepotrzebnie dane w pamięci, kiedy jest to zrobione, a może nie można go pobrać z garbage collection? – Beirdo

Powiązane problemy