Create swap space in Ubuntu
Check the current swap space configuration
Use swapon --show
or free -h
. If swap space is not used, swapon --show
will output nothing, while free -h
outputs with 0 bytes for swap, for example:
total used free shared buff/cache available
Mem: 1.9Gi 214Mi 138Mi 2.0Mi 1.6Gi 1.6Gi
Swap: 0B 0B 0B
Create swap space and configure
- Allocate swap space:
sudo fallocate -l 5G /swapfile
. My suggestion to the size of the swap space is 1.5x to 2x the memory size. (check this post for my suggestion on partition strategy in Linux). - Update the permission on the created file:
sudo chmod 600 /swapfile
. - Setup swap structure on the created file:
sudo mkswap /swapfile
. - Enable the swap space:
sudo swapon /swapfile
. - Make the change permanent and prevent it from being reset after restarts. Open and append the following line to
/etc/fstab
.
/swapfile swap swap defaults 0 0
The file content after the edit:
$ cat /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).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/vda1 during installation
UUID=7786cb30-0552-4bf8-99bc-4b5960cc7c22 / ext4 errors=remount-ro 0 1
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
/swapfile swap swap defaults 0 0
Confirm the configuration
Same as the first part of this post, with swapon --show
.
NAME TYPE SIZE USED PRIO
/swapfile file 5G 0B -2
With free -h
:
total used free shared buff/cache available
Mem: 1.9Gi 213Mi 139Mi 2.0Mi 1.6Gi 1.6Gi
Swap: 5.0Gi 0B 5.0Gi
Remove the swap space
- Turn of the swap space
sudo swapoff /swapfile
. - Remove the appended line in
/etc/fstab
. - Remove the file allocated for swap to restore the space:
sudo rm /swapfile
.
Configure swappiness
Swapiness is a value between 0 and 100 to control how much the swap space should be used by the system. 0 means ignoring the swap area unless RAM memory is over.
Ubuntu comes with the value of 60 by default.
- To check the swappiness:
# sysctl -a | grep swap
vm.swappiness = 60
- To change the swappiness instantly:
sudo sysctl vm.swappiness=50
. Note: this change will be reset after the machine restarts. - To make the change permanently, open
/etc/sysctl.conf
append or edit the swapiness configuration to:
vm.swappiness=50