How to Add Swap Space on Ubuntu 20.04
Swap is an additional space to the amount of RAM allocated from the hard disk space. If there is not enough RAM, the system moves the oldest data to the swap, thereby freeing up space for active applications.
Recommendations for the swap file
Hard drives, even solid-state drives, are slower than RAM. Thus, while designing and using the system, it is necessary to allocate the amount of RAM with a certain margin, leaving for the swap file the role of a backup space. The optimal swap size is equal to the amount of RAM, but in some cases it can be doubled.
Virtual servers are usually devoid of a swap space. On physical servers, it is usually set automatically, but can be changed for some purposes. In this tutorial, we will create a 4 GB swap file.
Swap file creation
First, let's create a file and preallocate space for the swap.
sudo fallocate -l 4G /swap
Close the file access rights for everyone except root.
sudo chmod 600 /swap
Configure the swap area in the /swap file.
sudo mkswap /swap
Output:
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=3c2ac0c0-3cc2-4571-b072-5f7d556acc88
Activate the swap file.
sudo swapon /swap
To activate it after a reboot, open the file:
sudo nano /etc/fstab
Paste this line at the end of it.
/swap swap swap defaults 0 0
Checking the swap file
To see the size and used space of the swap file use the command:
sudo swapon --show
Output:
NAME TYPE SIZE USED PRIO
/swap file 4G 0B -2
The second option is to view the state of RAM and the swap file.
sudo free -h
Output:
total used free shared buff/cache available
Mem: 1.9Gi 74Mi 1.8Gi 0.0Ki 115Mi 1.7Gi
Swap: 4.0Gi 0B 4.0Gi
Swappiness set up
Swappiness is a parameter that allows you to adjust the level of swap usage by the system. A high value will result in active use of the swap file, while a low value will result in minimal use.
To see the current value, enter:
cat /proc/sys/vm/swappiness
Output:
60
To set it to 20 use the following command or enter a value from 0 to 100:
sudo sysctl vm.swappiness=20
To save this setting after a reboot, open the /etc/sysctl.conf file and insert it there:
vm.swappiness=20
Save it and close.
Removing the swap file
First, deactivate the swap file.
sudo swapoff /swap
Then remove this line from the /etc/fstab file.
/swap swap swap defaults 0 0
Finally, delete the file from the file system.
sudo rm /swap