Commandlinebash

How to Create and Add a Swap File on Ubuntu

Create swap file

A step-by-step guide to creating, activating, and making a permanent swap file on Ubuntu to improve system performance and manage virtual memory.

A swap file allows a Linux operating system to use disk space as virtual memory when the physical RAM is fully utilized. This is crucial for systems with limited RAM, as it can prevent out-of-memory errors and improve stability when running memory-intensive applications. This guide provides a set of commands to create, enable, and automate a swap file on an Ubuntu system.

bash
1# Allocate 1GB Diskspace to swapfile
2sudo fallocate -l 1G /swapfile
3
4# Secure the swap file (only root can read/write)
5sudo chmod 600 /swapfile
6
7# Set up the file as Linux swap area
8sudo mkswap /swapfile
9
10# Activate the swap file
11sudo swapon /swapfile
12
13# Make the swap file permanent by adding it to fstab
14# Add the following line to /etc/fstab:
15# /swapfile swap swap sw 0 0
16
17# Verify the swap is active
18swapon -s
19free -m

Understanding This Code

What It Does

This series of commands creates a dedicated file on your filesystem to be used as virtual memory (swap space), which helps the system handle memory-intensive processes when physical RAM is full.

When To Use

Use this when your server has limited RAM, you are running applications that consume a lot of memory, or you want to prevent 'out of memory' errors during peak loads.

Prerequisites

  • Root or sudo access to an Ubuntu server.

Key Concepts

Important ideas to understand in this code

Swap Space

In Linux, swap space is disk space used as an extension of RAM. When the system runs out of physical memory, it moves inactive pages from RAM to the swap space, freeing up RAM for active processes.

Learn more

fallocate

`fallocate` is a command used to pre-allocate blocks to a file. It is much faster than creating a file by writing zeros to it (e.g., with the `dd` command).

Learn more

/etc/fstab

The File System Table (`fstab`) is a system configuration file that contains information about all the partitions and storage devices on the system. Entries in this file ensure that the specified filesystems, including swap, are mounted automatically at boot time.

Learn more

Step-by-Step Tutorial

Follow along to understand how this code works

1

Allocate Disk Space

Create a file named `swapfile` in the root directory with a size of 1GB. You can change `1G` to `4G` or another size depending on your needs.

bash
sudo fallocate -l 1G /swapfile
Next Step
2

Set Secure Permissions

Adjust the file permissions so that only the root user can read and write to it. This is a critical security measure to prevent unauthorized users from accessing the memory contents swapped to disk.

bash
sudo chmod 600 /swapfile
Next Step
3

Format the File for Swap

Mark the file as swap space. This command sets up the file with the necessary signatures to be used as virtual memory.

bash
sudo mkswap /swapfile
Next Step
4

Activate the Swap File

Enable the swap file, making it immediately available for the operating system to use.

bash
sudo swapon /swapfile
Next Step
5

Make the Swap Permanent

To ensure the swap file is automatically activated after every reboot, you must add an entry to the `/etc/fstab` file. Use a text editor like `nano` or `vim` to add the specified line.

bash
sudo nano /etc/fstab

# Add this line at the end of the file:
/swapfile   swap    swap    sw  0   0
Next Step
6

Verify the Swap is Active

Check the system's active swap spaces and memory usage. The output should list your new swapfile and show the total available memory.

bash
swapon -s && free -m

Common Issues & Solutions

Troubleshoot problems you might encounter