28

abbiamo appena aggiornato a Rails 3.2.5 da Rails 3.0.7 e utilizzando la compilazione asset-pipeline in tempo reale per il server di staging, ma a volte dobbiamo affrontare questa eccezione !pipeline di asset rotaie "Impossibile allocare memoria - 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 

Anche se nelle cornici o nella cartella delle immagini, ad esempio, non è stata creata alcuna grande quantità di memoria o allocazioni di memoria eccessive!

Grazie ...

+0

Sto affrontando un problema simile, hai preso per risolvere la vostra ?? Grazie! – yorch

+0

@yorch: vedere il mio commento qui sotto. Ha risolto il problema in 30 secondi per me. –

+0

@MustaphaELBanna: La mia soluzione ha funzionato per te? In tal caso, potresti contrassegnarlo come risposta? Grazie! –

risposta

1

Abbiamo contattato il supporto del provider, e sono risposto in 2 messaggi come questo:

  1. Ci sono due cose che possono causare questo: o si sono effettivamente in esecuzione memoria esaurita o il tuo Webby non ha configurato lo scambio.

Abbiamo un amministratore di sistema che lo controlla e risponderemo presto al tuo ticket.

  1. lo swap era disable per qualche ragione, ed è per questo si stavano avendo problemi di memoria. Ho corretto la voce fstab e abilitato lo scambio sulla partizione destra. Dovresti stare bene ora.

e fino ad ora questo errore non mostra :) Spero manterrà non mostrando anche per il futuro ...

Grazie, e buona fortuna ...

+0

contrassegnare la risposta corretta ... –

11

basati sul collegamento esercitazione fornito da Kyle Carlson


spazio Verificare di swap

sudo swapon -s

Una lista vuota confermerà che non si hanno file di swap abilitati:

Filename Type Size Used Priority

creare e attivare il file di scambio (file di swap)

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

creare una zona di Linux swap:

sudo mkswap /swapfile

uscita:

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

Attivare il file di swap:

sudo swapon /swapfile

controllare se è possibile visualizzare il riepilogo dello scambio.

swapon -s 

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

Fatto!


per rendere il file di swap permenant

sudo nano /etc/fstab

Incolla nella seguente riga:

/swapfile none swap sw 0 0

swappiness nel file deve essere impostato su 10. Skipping questo passaggio può causare prestazioni scadenti, mentre impostarlo su 10 farà in modo che lo swap funga da buffer di emergenza, evitando arresti anomali della memoria.

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

impostare le autorizzazioni corrette sul file di swap di non leggibile da parte del pubblico:

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

in base alla risposta di @ tohi, ho creato uno script che è possibile incollare in un terminale.

# 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 

Aggiornamento: Se è necessario ridimensionare il /swapfile in un momento successivo controllare questa risposta: https://askubuntu.com/a/763717/508371

0

forse aiuta a:

RAILS_ENV=production rake assets:clean 

ripartire il server web/es

service apache2 restart 

Poi:

RAILS_ENV=production rake assets:precompile 
Problemi correlati