nous venons de mettre à niveau Rails 3.2.5 à partir de Rails 3.0.7 et d'utiliser la compilation d'actifs-pipeline à la volée pour le serveur de transfert, mais nous sommes parfois confrontés à cette exception!
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
Bien que rien ne soit fantaisiste ou qu’une grande quantité de mémoire ne soit allouée dans les coffeescripts ou dans le dossier images par exemple!
Merci...
Il est simple de passer trois minutes (peut-être deux si vous tapez vite) à ajouter un fichier d'échange sur votre serveur.
Si vous utilisez Ubuntu (vous ne savez pas si cela fonctionne pour d'autres versions de Linux), suivez simplement ce tutoriel de DigitalOcean:
https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04
Voila!
Basé sur le lien de tutoriel fourni par Kyle Carlson
Vérifier l'espace d'échange
Sudo swapon -s
Une liste vide confirmera qu'aucun fichier d'échange n'est activé:
Filename Type Size Used Priority
Créer et activer le fichier d'échange (fichier d'échange)
Sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
Créez une zone d'échange Linux:
Sudo mkswap /swapfile
sortie:
Setting up swapspace version 1, size = 262140 KiB no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb
Activer le fichier d'échange:
Sudo swapon /swapfile
vérifiez si vous pouvez voir le résumé de l'échange.
swapon -s
Filename Type Size Used Priority
/swapfile file 262140 0 -1
Terminé!
Rendre le fichier d'échange permanent
Sudo nano /etc/fstab
Collez dans la ligne suivante:
/swapfile none swap sw 0 0
Swappiness dans le fichier doit être défini sur 10. Ignorer cette étape peut entraîner des performances médiocres, alors que le définir sur 10 fera que swap agira comme une mémoire tampon d’urgence, évitant ainsi les pannes dues à un manque de mémoire.
echo 10 | Sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | Sudo tee -a /etc/sysctl.conf
configurez les autorisations correctes sur le fichier d'échange pour qu'elles ne soient pas lisibles par le public:
Sudo chown root:root /swapfile
Sudo chmod 0600 /swapfile
Sur la base de la réponse de @ tohi, j'ai créé un script que vous pouvez coller dans un terminal.
# 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
Update : Si vous devez redimensionner le /swapfile
ultérieurement, vérifiez cette réponse: https://askubuntu.com/a/763717/508371
Nous avons contacté le support du fournisseur, qui a répondu en 2 messages:
Nous avons un administrateur système qui le vérifie et nous répondrons à votre billet bientôt.
Et jusqu'à présent, cette erreur ne se voit pas :) J'espère qu'elle continuera à ne pas paraître aussi pour l'avenir ...
Merci et bonne chance ...
Peut-être que cela aide à:
Rails_ENV=production rake assets:clean
Redémarrez votre serveur Web/par exemple.
service Apache2 restart
Ensuite:
Rails_ENV=production rake assets:precompile