Friday, October 05, 2007

increasing swap space on system

Yes--It helps...even these days...

By Urbana Der Ga'had

Sometimes in the course of a system's existence you find that the swap partition you set up at install-time just isn't enough anymore. Maybe you're upgrading your system to RedHat 7.1 from a version of RedHat that used less swap in relation to physical RAM. Perhaps you're running Oracle. Or maybe you're adding more memory and would like to increase swap space accordingly.

Our machine srv-2 is swapping like mad and we just can't take it down right now to add more RAM. So to keep the machine from running out of memory entirely and freezing, we'll add 128 MB more swap space by creating a swap file.

First we check out the memory usage:

[root@srv-2 /root]# free -m
total used free shared buffers cached
Mem: 251 242 8 22 11 32
-/+ buffers/cache: 198 52
Swap: 133 133 0

Make sure we have 128 MB laying around somewhere:

[root@srv-2 /root]# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda9 132207 33429 91952 27% /
/dev/hda1 15522 2537 12184 17% /boot
/dev/hda6 6143236 739000 5092176 13% /opt
/dev/hda7 1035660 836204 146848 85% /usr
/dev/hda5 2071384 344048 1622112 17% /usr/local
/dev/hda8 303344 14439 273244 5% /var

OK, we're going to make a swap file in /opt by using dd to create a file 128 MB in size.

[root@srv-2 /opt]# dd if=/dev/zero of=swapfile bs=1024 count=132207
132207+0 records in
132207+0 records out
[root@srv-2 /opt]# ls -l
total 132364
drwxr-xr-x 20 usr-3 users 4096 May 22 10:46 usr-3
drwxr-xr-x 2 root root 16384 Feb 21 07:04 lost+found
-rw-r--r-- 1 root root 135379968 May 29 11:52 swapfile

Hey, I know, let's not make it world-readable...

[root@srv-2 /opt]# chmod 600 swapfile
[root@srv-2 /opt]# ls -l
total 132364
drwxr-xr-x 20 usr-3 users 4096 May 22 10:46 usr-3
drwxr-xr-x 2 root root 16384 Feb 21 07:04 lost+found
-rw------- 1 root root 135379968 May 29 11:52 swapfile

Now we set up the swap area and enable it.

[root@srv-2 /opt]# mkswap swapfile
Setting up swapspace version 1, size = 135372800 bytes
[root@srv-2 /opt]# swapon swapfile

And viola! Twice as much swap as before.

[root@srv-2 /opt]# free
total used free shared buffers cached
Mem: 257632 254632 3000 2512 36172 15096
-/+ buffers/cache: 203364 54268
Swap: 268708 136512 132196

You can edit /etc/fstab to enable your swap file automatically at boot time.
By adding an entry like this:

/opt/swapfile           swap                    swap    defaults        0 0

Sure, swapping's ugly, slow and will grind your hard drives to dust. But even modern systems which have been tuned for performance require a generous oodle of swap space.

No comments: