rss feed Twitter Page Facebook Page Github Page Stack Over Flow Page

Add Swap

Some pre-installed Ubuntu Server are not configured with SWAP. Linux swaps allow a system to harness more memory than was originally physically available

Check for SWAP space:

Let's check if a SWAP file exists, and it's enabled before we create one.

sudo swapon -s

If there's no SWAP file, you should get a result like this:

Filename				Type		Size	Used	Priority

Create and Enable the Swap File

Before we create the SWAP file, we need to find out how much we need. Here's a quick guide to help you.

RAM in your Server Recommended swap space
2 GB of RAM or less 2 times the amount of RAM
2 GB to 8 GB of RAM Equal to the amount of RAM
8 GB to 64 GB of RAM 0.5 times the amount of RAM
64 GB of RAM or more 4 GB of swap space

To create the SWAP file, you will need to use the dd command:

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

All of this means:

if=/dev/zero  : Read from /dev/zero file. /dev/zero is a special file in that provides as many null characters to build storage file called /swapfile1.
of=/swapfile1 : Read from /dev/zero write storage file to /swapfile1.
bs=1024       : Read and write 1024 BYTES bytes at a time.
count=524288  : Copy only 523288 BLOCKS input blocks.

Prepare the swap file by creating a linux swap area:

sudo mkswap /swapfile

The results display:

Setting up swapspace version 1, size = 524284 KiB
no label, UUID=265d3e61-6e2b-4126-baba-6e6185e97b46

Activate the swap file:

sudo swapon /swapfile

Confirm that the swap partition exists.

$ sudo swapon -s

This will output something like:

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

This will last until the server reboots. Before, rebooting the server. Let's create the entry in the fstab:

sudo vi /etc/fstab

and add the following line:

/swapfile       none    swap    sw      0       0

Improve performance

Swappiness in the file should be set to 0. Skipping this step may cause both poor performance, whereas setting it to 0 will cause swap to act as an emergency buffer, preventing out-of-memory crashes. You can do this with the following commands:

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

Secure SWAP

To prevent the file from being world-readable, you should set up the correct permissions on the swap file:

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

Reboot to make sure the new swap gets activated properly at startup.