rails assets pipeline "Cannot allocate memory - nodejs"
It's simple to spend the three minutes (maybe two if you type fast) to add a swap file to your server.
If you're running Ubuntu (not sure how well this works for other Linux flavors), just follow this tutorial from DigitalOcean:
https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04
Voila!
Based on the tutorial link provided by Kyle Carlson
Check swap space
sudo swapon -s
An empty list will confirm that you have no swap files enabled:
Filename Type Size Used Priority
Create and Enable the Swap File (swapfile)
sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
Create a linux swap area:
sudo mkswap /swapfile
output:
Setting up swapspace version 1, size = 262140 KiB no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb
Activate the swapfile:
sudo swapon /swapfile
check if you can see the swap summary.
swapon -sFilename Type Size Used Priority/swapfile file 262140 0 -1
Done!
To make the swap file permenant
sudo nano /etc/fstab
Paste in the following line:
/swapfile none swap sw 0 0
Swappiness in the file should be set to 10. Skipping this step may cause both poor performance, whereas setting it to 10 will cause swap to act as an emergency buffer, preventing out-of-memory crashes.
echo 10 | sudo tee /proc/sys/vm/swappinessecho vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
set up the correct permissions on the swap file to not readable by the public:
sudo chown root:root /swapfile sudo chmod 0600 /swapfile
Based on @tohi's answer, I created a script which you can paste into a terminal.
# Turn it (off) on# sudo swapoff -asudo swapon -s# Create a swap file# 512k --> Swapfile of 512 MBsudo dd if=/dev/zero of=/swapfile bs=1024 count=512k# Use the swap filesudo mkswap /swapfilesudo 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/swappinessecho vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf # Change the permission to non-world-readablesudo chown root:root /swapfile sudo chmod 0600 /swapfile
Update: If you need to resize the /swapfile
at a later point check out this answer: https://askubuntu.com/a/763717/508371