Swap space is a space allocated on the local hard drive that is used when physical memory becomes full. It is also known as Virtual RAM on Windows. The swap space can be allocated as a separate partition or a swap file on the existing system partition. Since in most of the cases, partitions are predefined, hence swap file is considered more appropriate.
Check If Swap Is Already Enabled
swapon --show
If the output is empty, the system does not have swap space enabled. If you have something as shown below, the swap is already enabled
root@codesposts:~# swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
Creating Swap File
Step One – Create a swap file
fallocate -l 1G /swapfile
Here we are creating a swap file of 1GB. You can change the size according to your requirements and available space. In case the fallocate utility is not installed, you will receive an error “fallocate failed: Operation not supported”, then alternatively use the following method to create a swap file.
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
Step Two – Make sure that only the root user has access to the file so that the file doesn’t get corrupted by other users.
chmod 600 /swapfile
Step Three – Set up a Linux swap area on that file
root@codesposts:~# mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=65eb6626-e374-484c-b05c-ef1bb58c67a2
Step Four – Activate the swap file
swapon /swapfile
Open the /etc/fstab/ file using:
nano /etc/fstab
And paste the following line.
/swapfile swap swap defaults 0 0
So that it looks similar to the following file:
- /etc/fstab
-
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # # / was on /dev/vda1 during installation UUID=acb898d9-d5f2-4541-bdaa-9913acc386c6 / ext4 errors=remount-ro 0 1 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 /swapfile swap swap defaults 0 0
Step Five – Verify the swap space using the following command
root@codesposts:~# swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
OR using
root@codesposts:~# free -h
total used free shared buff/cache available
Mem: 481M 91M 24M 636K 364M 376M
Swap: 1.0G 0B 1.0G
Adjusting The Value Of Swap
Swappiness is a Linux kernel property that defines how often the system will use the swap space. Its value can be adjusted between 0 to 100. A low value will make the operating system to try to avoid swapping whenever possible while a higher value will make the operating system to use the swap space more often.
The default value usually is 30. You can check the current swappiness value by typing the following command:
root@codesposts:~# cat /proc/sys/vm/swappiness
60
To change the value of swapiness, lets suppose to 20, use the following command:
root@codesposts:~# sysctl vm.swapiness=20
vm.swappiness = 20
To make this parameter permanent even after rebooting the system, open up the /etc/sysctl.conf
file and append the following line
- /etc/sysctl.conf
-
net.ipv6.conf.all.accept_ra = 2 net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr vm.swappiness=10
Deleting Swap File
Step One – Deactivate the swap space by typing
swapoff -v /swapfile
Step Two – Delete the swap file entry /swapfile swap swap defaults 0 0
from the /etc/fstab
file.
- /etc/fstab
-
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # # / was on /dev/vda1 during installation UUID=acb898d9-d5f2-4541-bdaa-9913acc386c6 / ext4 errors=remount-ro 0 1 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Step Three – Delete the actual swap file
rm /swapfile