Cómo incrementar la swap sin reformatear el disco

Imagen de Epe

Aunque no soy partidario de incrementar la swap, en realidad a veces si nos hace falta. En este articulo explicaremos como agregar mas swap al sistema sin tener siquiera que reiniciarlo.

Para crear espacio swap no hay una ley definida, hay quien tiene por regla de oro el poner de swap 2 veces el tamanno de la RAM. Hay quien pone una sola vez el tamanno de RAM.

Yo, si mi maquina tiene menos de 512MB de RAM, pongo 2XRAM, si tiene mas de 1GB de RAM, pongo el mismo tamanno.

Pero ocurre a veces que ponemos digamos, 256M de swap porque teniamos 128 de RAM, que pasa si un dia incrementamos la RAM de la maquina a 512M por ejemplo, como hacemos para poner algo apropiado como digamos 1GB de SWAP?

Lo comun es acomodar las particiones reinstalando el linux, o usando alguna utileria para acomodarlas, otra variante es poner un disco extra y ahi crear la nueva swap.

Bueno, yo no tenia ninguna de esas opciones, tenia que incrementar mi swap puesto que le habia agregado esa memoria a mi servidor (512MB) y solamente tenia 128MB de swap. Mis servidores estan en estados unidos, no he tenido la suerte de ni siquiera ver como son mis servidores.. por lo tanto, tenia que encontrar alguna forma de incrementar la swap sin ninguna de las variantes anteriores.

Esto es muy simple, linux, desde los kernel 2.2 permite usar ficheros como espacio de swap. La idea entonces es crear un fichero de unos 256mb para agregarselo a mi espacio de swap actual.

En los kernels 2.2 el usar un fichero como espacio swap era un poco inconveniente, pues tenia que accederse a uno o varios inodos para poder usar el espacio swap, ya que a la final era un fichero. Sin embargo en las versiones de kernel 2.4 ya esto no es mayor problema y el performance de un fichero swap comparado con el performance de una particion swap es identico practicamente. Repito, el performance es muy similar y no afecta al sistema.

Bueno, que hacer? Muy simple:

Primero reviso que swap existe en mi sistema:

free -m

Creo con dd un archivo llamado swap dentro de /home con un tamanno de 256M (262144K)

dd if=/dev/zero of=/home/swap bs=1024 count=262144

A este archivo lo convierto en swap:

mkswap /home/swap

Le quito algunos derechos innecesarios:

chmod go-rwx /home/swap

Activo la swap:

swapon /home/swap

Y ahora compruebo como ha cambiado la swap de mi sistema:

free -m

Si reinicio el sistema, se perdera esta memoria swap, por lo que, si vemos que la solucion ha sido efectiva, debemos proceder a activar la swap desde el fstab por ejemplo:

editamos fstab y agregamos la siguiente linea:

/home/swap swap swap defaults 0 0

Esto levantara la swap con este fichero ademas de la swap original que tenia el sistema.

Supuestamente linux puede tener 8 particiones swap, cada una con hasta 2GB de tamanno. En este caso sencillamente hemos agregado una 2 swap.

Repito, no es una solucion el agregar swap bajo ciertas condiciones. Lo mejor es agregar memoria y revisar que pasa que esta consumiendo memoria. Agregar swap no es una solucion comun a problemas de memoria. Recomiendo esta opcion cuando hemos cometido un error y hemos puesto poca swap al sistema o cuando hemos agregado mucho mas memoria que la original y ahora la swap nos queda pequenna.

La proxima vez hablaremos sobre como mejorar un poco la seguridad en nuestros sistemas sin tener que invertir mucho mas que un poco de seso.

Comentarios