Swap is a physical space on the disk that is used when the system RAM is full. When the memory usage in a system exceeds the available RAM, the kernel will move the idle page to the swap memory. Swap space can be created on a separate partition or a swap file. If your server is running on a VPS and a swap partition is not present, then you will need to create a swap file.

In this post, we will show how to create and manage a swap space on Linux.

Step 1 – Verify Swap Partition

Before starting, you will need to check whether Swap is enabled or not in your system.

You can check it with the following command:

swapon --show

If the output is empty that means there is not any swap space active in your system.

Step 2 – Create a Swap File

As you can see, there is not any swap space active in your system. So you will need to create a new swap file to your system.

First, create a swap file with size 4GB using the following command:

dd if=/dev/zero of=/swapfile bs=4096 count=1048576

You should see the following output:

1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 9.47796 s, 453 MB/s

Next, set the correct permission on swapfile with the following command:

chmod 600 /swapfile

Next, create a swap area on the swapfile with the following command:

mkswap /swapfile

Output:

Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=035ada64-2c1a-407d-9f1a-c0dd02b8dcd4

Next, activate the swap space using the following command:

swapon /swapfile

The above command will activate the swap space temporarily.

To set up it permanently, edit the /etc/fstab file:

nano /etc/fstab

Add the following line:

/swapfile swap swap defaults 0 0
Save and close the file then verify the swap partition with the following command:
swapon --show

You should see the following output:

NAME      TYPE SIZE USED PRIO
/swapfile file   4G   0B   -2

Step 3 – Check Swap Usage

To check the Swap usage information, run the following command:

free -m

You should see the following output:

              total        used        free      shared  buff/cache   available
Mem:           1987          74          69           0        1843        1745
Swap:          4095           0        4095

You can also check it with the following command:

cat /proc/swaps

You should see the following output:

Filename                                Type            Size    Used    Priority
/swapfile                               file            4194300 0       -2

You can also use the top command to check the swap usage in real-time:

top

You should see the following output:

Tasks:  84 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.9 us,  5.9 sy,  0.0 ni, 88.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1987.7 total,     68.0 free,     74.8 used,   1844.9 buff/cache
MiB Swap:   4096.0 total,   4096.0 free,      0.0 used.   1745.5 avail Mem 

You can also use the vmstat command to check the swap usage:

vmstat 2 6

You should see the following output:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0  69356  12096 1877228    0    0    35   652   31   59  0  0 99  0  0
 0  0      0  69420  12096 1877228    0    0     0     0   24   42  0  0 100  0  0
 0  0      0  69388  12096 1877228    0    0     0     0   22   40  0  0 100  0  0

Step 4 – Remove a Swap Space

In order to remove the swap space, you will need to deactivate the swap space first. You can do it with the following command:

swapoff -v /swapfile

Next, edit the /etc/fstab file and remove the following line:

nano /etc/fstab

Remove the following line:

/swapfile swap swap defaults 0 0

Next, remove the swap file using the following command:

rm -rf /swapfile

Next, verify whether the swap space is removed or not with the following command:

swapon --show

Conclusion

In the above guide, you learned how to check and create a swap space on Linux. You also learned how to monitor the swap space with different commands. Get started today with your VPS from Atlantic.Net.