What do you think? Discuss, post comments, or ask questions at the end of this article. [More about me]

Skip to end of metadata
Go to start of metadata

Problem

You may want/need to create and enable a swap file on your Linux machine (or server).  For example, on some AWS EC2 instances you don't get ephemeral (temporary) storage disks that can be used for swap, so you might want to create a swap file on the main EBS volume to alleviate potential memory issues.

Solution

You can create a swap file on your Linux server via a terminal.  Note, you'll need sudo access for this.

First let's check if any swap files have already been enabled:

sudo swapon -s

Output will list any swap files already active.  To turn off all swap devices use [sudo swapoff -a].

The following will create and enable a 8GB swap file at /var/swap.0

sudo dd if=/dev/zero of=/var/swap.0 bs=1M count=8120
sudo mkswap /var/swap.0
sudo chmod 600 /var/swap.0
sudo swapon /var/swap.0

Making swap persistent

Doing the above will simply enable swap.  After a server reboot swap won't be enabled.  Do the following to make it persistent:

sudo cp /etc/fstab /etc/fstab.backup
echo '/var/swap.0 swap swap defaults 0 0' | sudo tee -a /etc/fstab

Now make sure you run (see below) which will check for errors.  If nothing (no errors) show then you should be good to go.  If errors, don't reboot until you fix (or restore from backup).

sudo mount -a

References

  1. https://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance