Question: I would like to add more swap space to my Linux system. Can you explain with clear examples on how to increase the swap space?
Answer: You can either use a dedicated hard drive partition to add new swap space, or create a swap file on an existing filesystem and use it as swap space.
How much swap space is currently used by the system?
Free command displays the swap space. free -k shows the output in KB.
# free -k
total used free shared buffers cached
Mem: 3082356 2043700 1038656 0 50976 1646268
-/+ buffers/cache: 346456 2735900
Swap: 4192956 0 4192956
Swapon command with option -s, displays the current swap space in KB.
# swapon -s Filename Type Size Used Priority /dev/sda2 partition 4192956 0 -1
Swapon -s, is same as the following.
# cat /proc/swaps Filename Type Size Used Priority /dev/sda2 partition 4192956 0 -1
Method 1: Use a Hard Drive Partition for Additional Swap Space
If you have an additional hard disk, (or space available in an existing disk), create a partition using fdisk command. Let us assume that this partition is called /dev/sdc1
Now setup this newly created partition as swap area using the mkswap command as shown below.
# mkswap /dev/sdc1
Enable the swap partition for usage using swapon command as shown below.
# swapon /dev/sdc1
To make this swap space partition available even after the reboot, add the following line to the /etc/fstab file.
# cat /etc/fstab /dev/sdc1 swap swap defaults 0 0
Verify whether the newly created swap area is available for your use.
# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 4192956 0 -1
/dev/sdc1 partition 1048568 0 -2
# free -k
total used free shared buffers cached
Mem: 3082356 3022364 59992 0 52056 2646472
-/+ buffers/cache: 323836 2758520
Swap: 5241524 0 5241524
Note: In the output of swapon -s command, the Type column will say “partition” if the swap space is created from a disk partition.
Method 2: Use a File for Additional Swap Space
If you don’t have any additional disks, you can create a file somewhere on your filesystem, and use that file for swap space.
The following dd command example creates a swap file with the name “myswapfile” under /root directory with a size of 1024MB (1GB).
# dd if=/dev/zero of=/root/myswapfile bs=1M count=1024 1024+0 records in 1024+0 records out # ls -l /root/myswapfile -rw-r--r-- 1 root root 1073741824 Aug 14 23:47 /root/myswapfile
Change the permission of the swap file so that only root can access it.
# chmod 600 /root/myswapfile
Make this file as a swap file using mkswap command.
# mkswap /root/myswapfile Setting up swapspace version 1, size = 1073737 kB
Enable the newly created swapfile.
# swapon /root/myswapfile
To make this swap file available as a swap area even after the reboot, add the following line to the /etc/fstab file.
# cat /etc/fstab /root/myswapfile swap swap defaults 0 0
Verify whether the newly created swap area is available for your use.
# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 4192956 0 -1
/root/myswapfile file 1048568 0 -2
# free -k
total used free shared buffers cached
Mem: 3082356 3022364 59992 0 52056 2646472
-/+ buffers/cache: 323836 2758520
Swap: 5241524 0 5241524
Note: In the output of swapon -s command, the Type column will say “file” if the swap space is created from a swap file.
If you don’t want to reboot to verify whether the system takes all the swap space mentioned in the /etc/fstab, you can do the following, which will disable and enable all the swap partition mentioned in the /etc/fstab
# swapoff -a # swapon -a
Linux provides several powerful administrative tools and utilities which will help you to manage your systems effectively. If you don’t know what these tools are and how to use them, you could be spending lot of time trying to perform even the basic administrative tasks. The focus of this course is to help you understand system administration tools, which will help you to become an effective Linux system administrator.Get the Linux Sysadmin Course Now!
If you enjoyed this article, you might also like..
|
|
|
|






My name is Ramesh Natarajan. I will be posting instruction guides, how-to, troubleshooting tips and tricks on Linux, database, hardware, security and web. My focus is to write articles that will either teach you or help you resolve a problem. Read more about
{ 17 comments… read them below or add one }
Nice article.
I tried to run the swapon command on RHL, but it says command not found! I am not sure which package would be good to install this functionality. Or any one can provide me the equivalent command for RHL.
Thanks,
Tanmay
How can i use my Nokia 6303c in Red Hat Linux to access the GPRS?How to make dial up connection in linux for Mobile modem?
Tanmay, make sure util-linux is installed and you will get swapon in Red Hat.
@Wing Loon: Thanks for your comment. It seems util-linux is not there on my box. I’ll install that. Thanks again.
Tanmay
It is very clearly explaiend and I can say it is SMART
Thanks
Bin
This article really very helpful
thanks, this helped me a lot!
Thank you so much !! It was very helpful.
Good job whoever did this, I was stuck with no space to add partitions to allocate swap
thanks for article it helped.
i was experience hi server load because on mysqld and server crashed once bcoz of going out of my 8gb ram and 3 gig of swap now i have created swap file of 20 gb , will c how it handles now.,
thanks a lot for this article.
Very nicely explained the Linux Swap space adding topic !
Keep doing good jobs!
Thanks a ton.
Hi, thanks for both of the methods. And i was interested in 2nd method. And i’m new to ubuntu. During the time of installation i had no idea why swap space is required. So i installed without swap space and i tried to create swap file in /root directory as u instructed in 2nd method. But the problem is while using mkswap command i got this error
root@padmahasa-desktop:/root# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=569c3355-e718-46c9-82f8-f2d2d6ef59a8
and i ignored and continued with next steps. It has created swapfile but when i tried to hibernate it showed an error stating
cannot get swap device try swapon -a
cannot get swap writer
Please help me. I just want my system to put into hibernate successfully. Please help me.
[root@ip-10-248-13-2 uploads]# free -m
total used free shared buffers cached
Mem: 594 425 169 0 51 260
-/+ buffers/cache: 113 481
Swap: 0 0 0
[root@ip-10-248-13-2 uploads]# mkswap -f /dev/xvdf
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=5c6d68ca-52ea-4e9c-ab64-136025a7bfa0
[root@ip-10-248-13-2 uploads]# swapon /dev/xvdf
[root@ip-10-248-13-2 uploads]# free -m
total used free shared buffers cached
Mem: 594 485 109 0 51 261
-/+ buffers/cache: 172 421
Swap: 1023 0 1023
[root@ip-10-248-13-2 uploads]#
Really helpful articles……….
Hi, Thanks for both of the above methods. But since at the time of istallation i don’t know the use of swap partition, i installed ubuntu 12.10 without swap partition. I want to hibernate without creating swap partition but only using swap file. I used second method to create swapfile and got this error while using mkswap
root@padmahasa-desktop:~# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=cc477ba5-e2d9-495c-a63b-300c4e5e0048
and each time UUID differs. But i ignored and continued with next steps and when i tried to hibernate my system i got these errors
PM: swap header not found
cannot get swap device try swapon -a
cannot get swap writer
I just want to hibernate my system only using swapfile. Is it possible to do it…. Please help me. I’m new to ubuntu.
Ramesh:
Great information! However, I started out with 2 gigs of memory and added 8 gigs. With that much memory, do I really need swap space?
Gene