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:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- The Novice Guide To Buying A Linux Laptop

- 10 Tools To Add Some Spice To Your UNIX Shell Scripts
- Email FAQ to a friend
- Download PDF version
- Printable version
- Comment RSS feed
- Last Updated: 03/13/08

Sign up for our daily email newsletter:
{ 11 comments… read them below or add one }
TYPO: vi /etc/fstatb
It should be fstab
anon,
Thanks for heads up!
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
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.
Thanks, I have been looking for the last step for months heh.
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:
You can turn it into:
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.
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!
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
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
Thanks! I’m newbie to Linux, It helped me in time.
Great howto!
After creating the swap file its permissions should be set so that only root can access the file:
chmod 600 /swapfile1