28

Właśnie zaktualizowaliśmy Rails 3.2.5 z Rails 3.0.7 i używamy kompilacji asset-pipeline w locie dla serwera pomostowego, ale czasami mamy do czynienia z tym wyjątkiem !Potok zasobów w torach "Nie można przydzielić pamięci - nodejs"

Showing /var/rails/appname/app/views/common/_my_partial.html.haml where line # raised: 

Cannot allocate memory - nodejs /tmp/execjs20120613-17090-thoc8f.js 2>&1 

Extracted source (around line #): 

Trace of template inclusion: app/views/layouts/application.html.haml 

Mimo, że nic nie jest przydziału alokacji pamięci w coffeescripts lub w folderze obrazów na przykład!

Dzięki ...

+0

mam do czynienia z podobnym problemem, dostałeś rozwiązać je ?? dzięki! – yorch

+0

@yorch: Zobacz mój komentarz poniżej. Naprawiono problem w 30 sekund dla mnie. –

+0

@MustaphaELBanna: Czy moje rozwiązanie działa dla Ciebie? Jeśli tak, czy mógłbyś oznaczyć to jako odpowiedź? Dzięki! –

Odpowiedz

1

Skontaktowaliśmy wsparcia usługodawcy, a oni odpowiedzieli w 2 wiadomościach tak:

  1. Są dwie rzeczy, które mogą być przyczyną to: Albo jesteś rzeczywiście działa z pamięci stale lub Twój Webby nie ma skonfigurowanej zamiany.

Mamy sysadmina sprawdzającego to, a wkrótce odpowiemy na Twój bilet.

  1. swap było wyłączyć z jakiegoś powodu, a to dlaczego mieli problemów z pamięcią. Naprawiłem wpis fstab i włączam zamianę na prawej partycji. Powinieneś już czuć się dobrze.

i do tej pory tego błędu nie pokazuje :) Mam nadzieję, że będzie na bieżąco nie pokazano na przyszłość też ...

Dzięki i powodzenia ...

+0

zaznaczyć właściwą odpowiedź ... –

11

oparciu o łącza samouczek dostarczonych przez Kyle Carlson


przestrzeń Sprawdź wymiany

sudo swapon -s

Pusta lista będzie potwierdzić, że masz włączone żadne pliki wymiany:

Filename Type Size Used Priority

Tworzenie i Włącz zamienić File (plik wymiany)

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

Utwórz obszar Linux Swap:

sudo mkswap /swapfile

wyjściowa:

Setting up swapspace version 1, size = 262140 KiB no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb 

Aktywuj plik wymiany:

sudo swapon /swapfile

Sprawdź, czy widzisz podsumowanie wymiany.

swapon -s 

Filename    Type  Size Used Priority 
/swapfile        file  262140 0 -1 

Gotowe!


Aby plik wymiany permenant

sudo nano /etc/fstab

Wklej następujący wiersz:

/swapfile none swap sw 0 0

swappiness w pliku powinna być ustawiona na 10. Pomijanie ten krok może spowodować zarówno niską wydajność, jak i ustawienie jej 10 spowoduje, że swap będzie działał jako bufor awaryjny, zapobiegając wypadkom z pamięci.

echo 10 | sudo tee /proc/sys/vm/swappiness 
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf 

skonfigurować odpowiednie uprawnienia do pliku wymiany nie czytelny dla publiczności:

sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile 
6

podstawie odpowiedzi @ tohi za stworzyłem skrypt, który można wkleić do terminala.

# Turn it (off) on 
# sudo swapoff -a 
sudo swapon -s 

# Create a swap file 
# 512k --> Swapfile of 512 MB 
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k 

# Use the swap file 
sudo mkswap /swapfile 
sudo swapon /swapfile 

# make sure the swap is present after reboot: 
sudo echo " /swapfile  none swap sw  0  0 " >> /etc/fstab 

# Set the swappiness (performance - aware) 
echo 10 | sudo tee /proc/sys/vm/swappiness 
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf   

# Change the permission to non-world-readable 
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile 

Aktualizacja: Jeśli trzeba zmienić rozmiar /swapfile w późniejszym sprawdzeniu tej odpowiedzi: https://askubuntu.com/a/763717/508371

0

Może to pomaga:

RAILS_ENV=production rake assets:clean 

zrestartować serwer WWW/np

service apache2 restart 

Następnie:

RAILS_ENV=production rake assets:precompile 
Powiązane problemy