Adding Swapfile on Linux

*You need to use the dd command to create swap file. The mkswap command is used to set up a Linux swap area on a device or in a file.

Step 1 – Login as the Root User

Open a terminal. Switch to the root user by typing su - (or sudo -s) and entering the root password, when prompted:
$ su -
OR
$ sudo -s

Step 2 – Create Storage File

Create directory for swapfile :

Type the following command to create 512MB swap file (1024 * 512MB = 524288 block size):
# mkdir /swap-space

Type the following command to create 512MB swap file (1024 * 512MB = 524288 block size):
# dd if=/dev/zero of=/swap-space/swapfile bs=1024 count=524288
Sample outputs:

524288+0 records in
524288+0 records out
536870912 bytes (537 MB) copied, 3.23347 s, 166 MB/s

Where,

  1. if=/dev/zero : Read from /dev/zero file. /dev/zero is a special file in that provides as many null characters to build storage file called /swapfile1.
  2. of=/swap-space/swapfile : Read from /dev/zero write storage file to /swap-space/swapfile.
  3. bs=1024 : Read and write 1024 BYTES bytes at a time.
  4. count=524288 : Copy only 523288 BLOCKS input blocks.

Step 3 – Secure swap file

Setup correct file permission for security reasons, enter:
# chown root:root /swap-space/swapfile
# chmod 0600 /swap-space/swapfile

A world-readable swap file is a huge local vulnerability. The above commands make sure only root user can read and write to the file.

Step 4 – Set up a Linux swap area

Type the following command to set up a Linux swap area in a file:
# mkswap /swap-space/swapfile
Sample outputs:

Setting up swapspace version 1, size = 524284 KiB
no label, UUID=0e5e7c60-bbba-4089-a76c-2bb29c0f0839

Step 5 – Enabling the swap file

Finally, activate /swap-space/swapfile swap space immediately, enter:
# swapon /swap-space/swapfile

Step 6 – Update /etc/fstab file

To activate /swap-space/swapfile after Linux system reboot, add entry to /etc/fstab file. Open this file using a text editor such as vi:
# vi /etc/fstab
Append the following line:
/swap-space/swapfile swap swap defaults 0 0
Save and close the file. Next time Linux comes up after reboot, it enables the new swap file for you automatically.

How do I verify Linux swap file is activated or not?

Simply use the free command:
$ free -m

             total       used       free     shared    buffers     cached
Mem:          1876       1798         77          0        119       1440
-/+ buffers/cache:        237       1638
Swap:         4607          0       4607

How can I display swap usage summary on Linux?

Type the following swapon command:
# swapon -s
Sample outputs:

Filename				Type		Size	Used	Priority
/dev/sda6                               partition	4194296	0	0
/swap-space/swapfile                    file		524280	0	-1