Linux add a swap file howto

by Vivek Gite · 11 comments

Q. I need additional swap space to improve my system performance. How do I add a swap file to Linux system?

A. In Linux, as in most other Unix-like operating systems, it is common to use a whole partition of a hard disk for swapping. However, with the 2.6 Linux kernel, swap files are just as fast[7] as swap partitions, although Red Hat recommends using a swap partition. The administrative flexibility of swap files outweighs that of partitions; since modern high capacity hard drives can remap physical sectors, no partition is guaranteed to be contiguous. You can add swap file as a dedicated partition or use following instructions to create a swap file.

Procedure to add a swap file

You need to use dd command to create swapfile. Next you need to use mkswap command to set up a Linux swap area on a device or in a file.

a) Login as the root user

b) Type following command to create 512MB swap file (1024 * 512MB = 524288 block size):
# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

c) Set up a Linux swap area:
# mkswap /swapfile1

d) Activate /swapfile1 swap space immediately:
# swapon /swapfile1

e) To activate /swapfile1 after Linux system reboot, add entry to /etc/fstab file. Open this file using text editor such as vi:
# vi /etc/fstab

Append following line:
/swapfile1 swap swap defaults 0 0

So next time Linux comes up after reboot, it enables the new swap file for you automatically.

g) How do I verify swap is activated or not?
Simply use free command:
$ free -m

See also:

Featured Articles:

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 11 comments… read them below or add one }

1 anon January 17, 2007

TYPO: vi /etc/fstatb
It should be fstab

Reply

2 nixcraft January 17, 2007

anon,

Thanks for heads up!

Reply

3 some_guy June 1, 2007

If you don’t want to reboot the machine to enable the new swapfile, after step f) you can issue these commands:

swapoff -a
swapon -a

to first stop and then start all swaps in /etc/fstab

Reply

4 asdffdsa October 20, 2007

Thanks for the help. But how would I go about deleting this swapfile? Also, how does creating a swapfile this way differ from creating a separate partition for one? I only ask because I would like to have multiple installs of linux on my system, and I would like them to share the same swapfile.

Recently, I’ve been trying to create a swapfile partition and it’s not being recognized, so I’ve been having trouble.

Reply

5 Mosab May 7, 2008

Thanks, I have been looking for the last step for months heh.

Reply

6 Alex April 10, 2009

Thank you for the guide; I’d like to add another detail. In this line one may choose to use other units to make things more simple:

# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

You can turn it into:

# dd if=/dev/zero of=/swapfile1 bs=1M count=512

This means that the block size is 1 MB, so count=512 means “I need 512 megs”, there is no need to do any other calculations.

Reply

7 acidtoi November 10, 2009

hi,
i’m about to install ubuntu karmic on a new computer with thre sata hard drives.

I usually allocate a little more of current ram in swap partition (5 gigas) so I can safely hibernate, but on a post I read in FreeBSD forums there’s a link to FreeBSD manual where states there should be a swap partition for every disk, not just one swap for the whole system.

So, I know Linux is not *BSD but I wonder if the same is applicable here because installing a swap of 5 gigs in all three sata seems a waste of space to me!

cheers!

Reply

8 Gen2ly December 5, 2009

Set swap priority:

• Swapiness is the priority of input/output for swap. To look the current value:
cat /proc/sys/vm/swappiness

To change the swap priority (lower value means less swapping):
sysctl vm.swappiness=10

To have this value set at boot add it to /etc/sysctl.conf
vm.swappiness=0

Reply

9 Primoz January 12, 2010

Hi!
First I must say thanks for a great how to.
And secondly, I’m referencing it in Arch Linux wiki how to create swap file.
Hope you agree with it.
If not please contact me.
Link: http://wiki.archlinux.org/index.php/HOWTO_Create_swap_file

Reply

10 luckyrams March 3, 2010

Thanks! I’m newbie to Linux, It helped me in time.

Reply

11 Thomas May 3, 2010

Great howto!

After creating the swap file its permissions should be set so that only root can access the file:

chmod 600 /swapfile1

Reply

Previous FAQ:

Next FAQ: