Linux y los ficheros Swaps

Si buscamos en la historia, podemos encontrar que veíamos a Linux como el S.O. que podía correr en cualquier maquina, por pequeña que fuera; hablábamos de CPUs Pentium 5, son 1Gb máximo de memoria; en aquella época, el trabajar con ficheros swaps, era una necesidad, después nos fuimos animando a utilizarlo con maquinas mayores, y llegamos a la conclusión que el swap lo hacia mas lento…y ahora?…volvemos a ello?

Realmente, trabajar con fichero swap hace nuestro ordenador mas lento; no se mueve a igual velocidad la información en memoria, que en un disco, pero…

Pero ahora, los discos son mas rápidos, y , sobre todo, insistimos en contratar servidores pequeños, con poca memoria…

Este web, en el que estais leyendo esto, esta en una maquina virtual con 2Gb y 20Gb en disco…si, una miniatura, y eso ha hecho que últimamente, tuviera algunos problemas de memoria

Por otra parte, de los 20 Gb que tengo en el disco, 10Gb están libres, y es un disco SSD, luego, porque no crear un pequeño swap que me ayude a mantener vivo a mi equipo?

En este caso, vamos a realizar la instalación en un sistema Debian, y, naturalmente, no podemos contar con la creación de particiones durante el arranque, como hacíamos antiguamente…el ordenador es de mi proveedor, y esta situado en algún lugar de Francia, no puedo ir a instalar físicamente … luego lo tendremos que hacer en remoto

Vamos a crear una particion swap de 512kb, si necesitamos mas, iremos ajustando otro dia. para ello, lo primero que necesitamos es podernos logonar como root, cosa que la conexión ssh no me va a dejar hacer….luego, me conecto con mi usuario habitual, y luego, puedo hacer

$ su-

o

$ sudo -s

me permitirá pasar a ser root

Lo que debemos hacer a continuación, es crear un espacio en disco, para ubicar el swap, y para ello, ya que queremos 512Mb, deberemos calcular:

512Mb * 1024 = 524.288 bloques

Luego, podemos dar la orden:

# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
524288+0 records in
524288+0 records out
536870912 bytes (537 MB) copied, 4.23681 s, 127 MB/s

Lo que hemos hecho, es

dd  copiar

if=/dev/zero desde /dev/zero que es un fichero ficticio que me proporciona tantos caracteres nulos como necesite

of=/swapfile1 a un fichero que quiero crear a nivel raiz (no necesariamente)

bs=1024 Con una longitud de bloque de 1024 bytes

count=524288 El numero de veces que aqui indico, osea copiare desde la entrada 524.288 * 1024 bytes…bueno, exactamente 512Mb

Una vez tenemos creado el fichero, dejamos usuario y permisos correctamente configurado

~# chown root:root /swapfile1
~# chmod 0600 /swapfile1

 

Osea que hacemos que su propietario sea root, y solo el pueda escribir y leer.

El siguiente paso, será  formatearlo como fichero swap

# mkswap /swapfile1
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=3dceba96-e41e-4545-9403-38701093fc5c

Y, si queremos que empiece a funcionar inmediatamente, deberemos hacer

~# swapon /swapfile1

y con eso, ya tendremos en marcha nuestro fichero swap, ahora si necesitamos que cuando se vuelva a arrancar la maquina, se vuelva a activar, deberemos modificar el fichero fstab, para dejar constancia de su existencia

Habrimos con vi o con nano… a vuestro gusto

~# nano /etc/fstab

y añadimos una linea como

/swapfile1 none swap sw 0 0

y salvamos. Con esto ya tenemos nuestro fichero swap funcionando…. podeis comprobarlo con

~# free -m
                   total used free shared buffers cached
Mem:                1962 1810  151    275      34    533
-/+ buffers/cache:  1241  720
Swap:                511    2  509

Podemos  comprobar si tenemos algun otro swap creado con:

~# swapon -s
Filename   Type Size   Used   Priority
/swapfile1 file 524284 454060 -1

o ver como esta de ocupación, también con “top”

que, como podéis ver, yo lo hubiera tenido que hacer mas grande…..la próxima

Solo os queda por saber, que si deseamos desactivar nuestro swap, podremos hacer

# swapoff /swapfile1
# swapon -s

Y recordad que si queréis controlar la agresividad con que funciona el swap, osea la facilidaad que tiene para mandar las paginas de memoria al swap, po podeis controlar con el swappiness

 

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Formacion, Linux y etiquetada , , . Guarda el enlace permanente.

2 respuestas a Linux y los ficheros Swaps

  1. HenryGR dijo:

    Bonita e instructiva comedura de tarro 😉

    Gracias Miguel!

  2. HenryGR dijo:

    Perdón, se me olvidó la pregunta: ¿Cuál crees que es el tamaño ideal del swap?

    Gradias.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.