SWAP space can be a life saver.
If your are like me, you may often find yourself messing with VPSes and other servers. All too often these are provisioned with very little RAM, 512MB or less.
When your applications/processes run out of RAM, most of them become relatively unhappy and begin to behave erradically and finally crash.
In many cases you only need more RAM temporarily while you run some memory intensive command or perhaps you just want a safty net. SWAP space offers you this flexibillity by tapping into your hard drive's space. Imagine it as emergency RAM which lives on your hard drive in the form of a file or partition. In the event that more RAM is need than available, the OS will automatically tap that file instead of crashing your programs. The only down side is that SWAP is many times slower than your physical RAM and will therefore affect your overall performance.
Creating a SWAP file
Log into your machine over ssh or locally, then we will create a 512mb file full of zeros using dd and finally we will make it only read-writable by root.
sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288
sudo chown root:root /swapfile
sudo chmod 600 /swapfile
now we will turn this file into a swapfile format using mkswap:
sudo mkswap /swapfile
Swapping the swapfile on:
sudo swapon /swapfile
To check whether it worked or not check the output of free -m for the line specifying swap:
derp@box:~$ free -m
total used free shared buffers cached
Mem: 491 484 6 0 21 169
-/+ buffers/cache: 293 198
Swap: 511 0 511
In the above example it looks like everything went well. Now we have to make it permanent, otherwise at every reboot you would need to run the swapon command again. This is where our friend fstab comes in.
sudo nano /etc/fstab
Add the following line at the bottom:
/swapfile swap swap defaults 0 0
This will mount the swap file at boot with default options.
Cheers and enjoy your swapping.
Also sidenote: VPSes and other servers with fast disks will do much better when swapping. I can recommend Digital Ocean, all their VPSes are backed by SSD, which makes running in swap very quick.