Home Tutorials How to Add and Configure Swap Space on Ubuntu Linux

How to Add and Configure Swap Space on Ubuntu Linux

SWAP is a partition or a disk space that can take some load for RAM and can be used as a memory space on Ubuntu systems. Normally, while installing a new Linux-based operating system, it will offer you to create a new SWAP partition. The file partition has a SWAP flag, and usually, the size of a SWAP space is 2GB on average. When the system memory is full, the Linux kernel automatically moves some unused files into the SWAP area instead of stopping them. As we know, in Linux, everything is either a file, SWAP can handle files pretty well. So, if you’re using a Ubuntu system on a virtual machine, you definitely should try adding SWAP space to your machine.

Swap Space in Ubuntu Linux


You may ask, how much storage should I use for the SWAP space? As SWAP can take the extra RAM load, can I allocate as much SWAP as I want? Well, here is the standard formula. If you have more than 2GB of physical RAM on your machine, SWAP is recommended for you.

You can also use SWP if you have a higher amount of Physical Memory. The amount of SWAP you should use is kind of dependent on how much actual RAM you have. Please follow the table given below to understand the RAM-SWAP ratio. In this post, we will see how to add a SWAP space in the Ubuntu system.

RAM Size Swap Size (Without Hibernation)  Swap size (With Hibernation)
 256MB  256MB  512MB
 512MB  512MB  1GB
 1GB  1GB  2GB
 2GB  1GB  3GB
 3GB  2GB  5GB
 4GB  2GB  6GB
 6GB  2GB  8GB
 8GB  3GB  11GB
 12GB  3GB  15GB
 16GB  4GB  20GB
 24GB  5GB  29GB
 32GB  6GB  38GB
 64GB  8GB  72GB
 128GB  11GB  139GB

Step 1: Check the Current System Swap Space on Ubuntu


Before you start creating a new SWAP space on your Ubuntu and Debian-based system, please ensure no existing SWAP space on the system. You can any of the following commands given below to check your SWAP space on your Ubuntu machine.

sudo swapon -s
sudo swapon --show

In the terminal shell, you can see that the SWAP is mentioned as a ‘File Type’ because, in Linux, everything is a file.

current swap size

Step 2: Create Swap File on Ubuntu


We will use the allocate command to assign a specific space as the SWAP file in this step. In the below-mentioned command, the allocate command assigns a 4 Gigabyte of space as the SWAP space. When the command finishes creating the file, please run the next change mode command to allow the SWAP file to read and write permission.

sudo fallocate -l 4G /swapfile
chmod 600 /swapfile

If you have any issues using the allocate command, please try the following command to make the SWAP space.

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

Now, make the SWAP file executable and enable it on your Ubuntu system by running the following commands on your terminal shell with root access.

sudo mkswap /swapfile
sudo swapon /swapfile

Step 3: Configure the Script and Allocate the Swap


After creating the SWAP space on your Ubuntu system, you can edit the configuration to set the SWAP parameters. For example, use the following command with root access, edit the SWAP partition, and see the UUID.

sudo nano /etc/fstab

Now, when the configuration script opens, add the following line inside the script, save it and exit the file. The line indicates the mount point, file type.

/swapfile none swap sw 0 0

Now, run the following command to edit the kernel level script for enabling the SWAP space on your machine.

sudo nano /etc/sysctl.conf

When the script opens, add the following line inside the script, then save and exit it. You can change the value according to your urgency.

vm.swappiness=10

Now run the following system control command to reload the SWAP space and see the impact on your machine.

sudo sysctl -p

You can now run the swapon command given below to check if the SWAP space is activated or not on your Ubuntu system.

sudo swapon --show

Step 4: Resize SWAP in Ubuntu


If you ever need to add more space inside your SWAP disk, you can just do it by adding more disk space into that. To resize the SWAP space on a Ubuntu machine, you need to turn off the SWAP space and then re-allocate the desired space. You can run the following command lines on the shell with root access to make that happen.

sudo swapoff /swapfile 
sudo fallocate -l 2G /swapfile

When the resizing finishes, mark the space as SWAP and enable the file on your system. Run the following commands to mark and enable the SWAP space.

sudo mkswap /swapfile 
sudo swapon /swapfile

Step 5: Remove SWAP on Ubuntu Linux


Sometimes, when you have a multi-boot computer, you might need to allocate the SWAP space on your system for each operating system. The following process will allow you to empty the SWAP space on your Ubuntu machine. First, run the following nano command to edit the swap2ram script to edit it. When it opens, add the script given below, then save and exit the file.

sudo nano /usr/local/sbin/swap2ram.sh

Then, add the following lines to the script, then save and exit the file to deactivate the SWAP file.

#!/bin/sh

mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}')
swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}')

if [ $mem -lt $swap ]; then
echo "ERROR: not enough RAM to write swap back, nothing done" >&2
exit 1
fi
swapoff -a &&
swapon -a

Please run the change mode command to execute the files if you face any issues editing the script and run the commands.

sudo chmod +x /usr/local/sbin/swap2ram.sh
sudo /usr/local/sbin/swap2ram.sh

You can also turn off the SWAP and remove it by running the following rm command on your terminal shell.

sudo swapoff -v /swapfile
sudo rm /swapfile

Issues You Might Face


If you are using old hardware or an operating system, there are chances that you may face a few issues. For example, you might need to change the swappiness value to let your Ubuntu kernel know how often you want the machine to use the SWAP space after creating the SWAP space.

If you can’t change the swappiness value on your Ubuntu system, please try the following command line to add your custom line inside the script. Here, 60 is the memory paging (swappiness) value, and you can change it according to your configuration.

cd /etc/sysctl.d/
sudo touch 60-my-swappiness.conf

Then run the SWAP configuration script on your notepad/editor to change the vm.swappiness = 60  value.

sudo nano 60-my-swappiness.conf

Final Words


No doubt, SWAP can speed up your system, and swapping in Linux can really save your computer from crashing due to a lack of RAM space. But before creating a SWAP space on your system, ensure that you really need the SWAP space.

And it is recommended to add the swap space through the installation wizard during the OS installation. In the entire post, I’ve described the notion of SWAP, how many swaps you might need, and the process of adding a SWAP space on a Ubuntu system.

If you find this post useful and technical, please share it with your friends and the Linux community. You can also write down your opinions regarding this post in the comment section.

1 COMMENT

  1. Thank you very well written!
    Well If I could see better, I more than likely would not have gotten:
    sudo mkswap /swapfile
    mkswap: error: /swapfile is mounted; will not make swapspace

    And I’ve been around the block on that and have not found a FIX for that…
    Here what I tried to do….
    pvtkeepout@pvtkeepout:~$ sudo fallocate -l 8G /swapfile
    [sudo] password for pvtkeepout:
    pvtkeepout@pvtkeepout:~$ sudo mkswap /swapfile
    mkswap: /swapfile: insecure permissions 0644, 0600 suggested.
    Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
    no label, UUID=f62565f6-6f7d-4817-a4c0-881a18efbcbf
    pvtkeepout@pvtkeepout:~$ sudo swapon /swapfile
    swapon: /swapfile: insecure permissions 0644, 0600 suggested.
    pvtkeepout@pvtkeepout:~$ sudo chmod 600 /swapfile
    pvtkeepout@pvtkeepout:~$ ls -lh /swapfile
    -rw——- 1 root root 8.0G Sep 10 19:27 /swapfile
    pvtkeepout@pvtkeepout:~$ sudo mkswap /swapfile
    mkswap: error: /swapfile is mounted; will not make swapspace
    pvtkeepout@pvtkeepout:~$ sudo swapon –show
    NAME TYPE SIZE USED PRIO
    /dev/dm-2 partition 980M 9.6M -2
    /swapfile file 8G 0B -3

    Again great how to on your part, but me did something wrong on my part?

LEAVE A REPLY

Please enter your comment!
Please enter your name here


Exit mobile version