Adding swap space to a running linux system



There are acouple situations where my systems memory needs have exceeded the supply. The most likely cases are running virtual machines and building cd/dvd images. Those things realistically take LOT’s of memory. I have a swap partition – I don’t recall the size right off. I have about 512 MB on the desktop and probably for what I do could use to double that. Swap space, of course, is what the operating system uses when all the physical memory (RAM) is used.


The situations I’ve seen needing more memory are this. Building a cd or dvd image… the process starts off quite well, fairly quickly. But as it progresses, let’s say to 70% or so in the cd image building the desktop responsiveness slows, the hard drive is thrashing and if you manage to look at “top” or free, you find a VERY minimal amount of memory is actually free swap or RAM. So, what to do? If you’re lucky enough to be able to get to a console you can actually add swap on the fly and return to some responsiveness. If it’s swapping too hard, you may just wind up waiting it out (or rebooting, to many people it looks like a hard system freeze.)

Linux can deal with a swap partition, or a file designated as a swapfile (or multiple files…) Here’s how to add swap space.

Create a 1GB swap file with the following

dd if=/dev/zero of=swapfile bs=1024 count=1M

Next Use the following to “format” the new swap file. Similarly for a new swap partition.
/sbin/mkswap -c swapfile

Now Set swap file ownership and permissions

chown root.root swapfile; chmod 0600 swapfile

Optionally add the new swap space entry to /etc/fstab. (if swap is to be activated at each boot.)

Eg. swapfile swap swap defaults 0 0

Finally Enable the new swapspace(s) with

/sbin/swapon -a (if entry is in fstab)
or
/sbin/swapon /path/to/newswap (if this is to be temporary.)

   Send article as PDF   

Similar Posts