Utilizando un archivo como memoria de intercambio (SWAP)
Autor: Maikel Llamaret Heredia Publicado en el sitio de GUTL.
Tiempo atrás, GNU/Linux, se encontraba limitado a utilizar una sola partición de memoria de intercambio de un máximo de 128 MB, algo muy criticado por los detractores del núcleo de Linus Torvalds.
Por fortuna , hoy en día ya no existe dicho límite, y es posible además utilizar cuanta memoria de intercambio sea requerida para satisfacer las necesidades de cualquier sistema.
En ocasiones, luego de instalar nuestro sistema nos vemos en la necesidad de aumentar la memoria SWAP que habíamos configurado durante la instalación, algo que se puede hacer de manera sencilla aumentando el tamaño de la partición escogida para estos fines. Pero… ¿Qué hacer en que caso que no se quiera tocar la tabla de particiones?
¿Qué es SWAP y como funciona?
El espacio de memoria de intercambio o Swap, es lo que se conoce como memoria virtual. La diferencia entre la memoria real y la virtual es que esta última utiliza espacio en el disco duro en lugar de un módulo de memoria.
Cuando la memoria real se agota, el sistema copia parte del contenido de esta directamente en este espacio de memoria de intercambio a fin de poder realizar otras tareas.
Utilizar SWAP tiene como ventaja el proporcionar la memoria adicional necesaria cuando la memoria real se ha agotado y se tiene que realizar un proceso. La desventaja es que, como consecuencia de utilizar espacio en el disco duro, la utilización de esta es más lenta.
Utilizar un archivo como memoria de intercambio.
Este método no requiere hacer cambios en la tabla de particiones del disco duro. Ideal para usuarios poco experimentados, para quienes desean evitar tomar riesgos al cambiar la tabla de particiones de su disco duro, o bien para quienes requieren más de memoria de intercambio ocasional, o de manera circunstancial.
Considerando que el archivo de memoria de intercambio puede ser colocado en cualquier directorio del disco duro, se ejecuta el comando dd, especificando que se escribirán ceros (if=/dev/zero) para crear el archivo /swap (of=/swap), en bloques de 1024 bytes (bs=1024) hasta completar una cantidad en bytes determinada (count=[cantidad multiplicada por el valor de bs]). En el siguiente ejemplo se realiza lo anterior hasta completar 524288000 bytes (dividido por 1024 equivalen a 512 MB):
Para crear el archivo que utilizaremos como SWAP abriremos una consola y escribiremos lo siguiente (como root):
dd if=/dev/zero of=/swap bs=1024 count=512000
El paso anterior puede demorar unos segundos, tenga paciencia. Luego, para dar formato de memoria de intercambio al archivo creado, ejecutaremos el comando mkswap, del siguiente modo (siempre como root):
mkswap /swap
Se le devolverá una salida en la consola similar a lo siguiente:
Setting up swapspace version 1, size = 511996 KiB no label, UUID=fed2aba5-77c6-4780-9a78-4ae5e19c506b
Para activar la partición, y que sea utilizada inmediatamente por el sistema operativo, se ejecuta el comando swapon. En nuestro caso activaremos como partición de memoria de intercambio al archivo /swap que creamos y dimos formato SWAP en los pasos anteriores:
swapon /swap
Para verificar que el nuevo archivo de memoria de intercambio está siendo utilizada por el sistema operativo, ejecutaremos nuevamente el comando free y veremos que se le ha sumado a la memoria SWAP inicial la capacidad del nuevo archivo.
Para que este archivo se utilice como memoria de intercambio automáticamente en el siguiente arranque del sistema, editaremos /etc/fstab (utilizando nano, gedit, kate, kwrite, vim o el editor de texto plano de su preferencia), agregando la línea correspondiente, del siguiente modo, donde en lugar de el dispositivo, se pone la ruta del archivo de memoria de intercambio creado:
Abrimos el archivo
nano /etc/fstab
Y le añadimos:
/swap swap swap defaults 0 0
Listo!!!!
Podemos reiniciar el sistema y probar que nuestra memoria de intercambio se ha incrementado con el uso del nuevo archivo SWAP. Sencillamente lo que hemos hecho es crear un archivo en la raíz del sistema, darle formato SWAP y decirle a nuestro GNU/Linux que lo utilice como memoria de intercambio, junto a la partición que ya teníamos destinada para este objetivo.
Algo sencillo pero que pudiera ser de cierta utilidad a muchos de nosotros… Sin más…


La nota esta genial. Solo que ahora me hace pensar una cosa, podria de modo similar usar una USB como soporte de memoria ??? Si se tiene un equipo algo ya viejo y conseguir las memorias es complicado o demasiado caro (parece que entre mas viejo mas caras las refacciones en computadoras), seria bueno poder ampliar la memoria solo con una usb
Si, está muy bueno, más o menos así hace la zramswap que tengo instalada (no me gustan las ensaladas de particiones, no separo nada).
Si quieres usar el usb como swap, sólo formateas una partición para tal propósito, y lo añades al fstab, cambiando /swap por /dev/sdb1 (asumiendo que sea sdb1 la ruta de tu usb).
vas a ser feliz con btrfs y sus subvolumenes
Bueno, si entendi bien lo de como hacer la USB Swap, pero pensaba mas en algo asi como RAM adicional, ya que la USB seria memoria fisica, y no me gustaria tener que esperar a que se supere el 60% de la memoria para empezar a usar la USB.
Bueno y viendo el comentario de @nonamed, el porque de soluciones como esta (y solo como aporte y no como inicio de una guerra de equipo y con todo el respeto) en una epoca donde ya existe equipos con mejores rendimeintos y parece inecesario; se me ocurren 3 puntos:
1o. Y la mas obvia, para usarlo en equipos antiguos
2o. Pienso tambien en equipos portatiles no tan nuevos que tienen capacidad de 1gb o 2gb, “MENOS” la memoria destinada a la tarjeta de video
3o. Pues es obvio, no ?? Porque es interesante y porque se puede hacer … jejeje !! XD
Un saludo
O si se te olvida crearte la SWAP y no quieres liarte con la tabla de particiones
Excelente guia, y practico a la vez, para cuando uno se queda sin swap, aun que dificl. Ahora estoy replicando lo mismo pero en una memoria usb para que sea un poco mas rapido el traspaso de datos de memoria fisica al memoria de intercambio.
Gracias, por la información. pero me genera una pregunta, quizás algo tonta: una vez creado este archivo swap, no se puede borrar la partición swap???
a veces me pregunto si realmente merece la pena tener swap, yo siempre lo tengo al 0%, tal vez tenga que ver la memoria, tengo 4Gb de ram , supongo que a mas memoria menos sentido tiene usar swap
Si, depende de la memoria que tengas en la máquina. Yo tambien siempre la tengo en 0%, y al tener 4Gb de ram sólo le doy 512mb a la particion de swap
esto me tocó hacerlo en sabayon, no pude encontrar la causa del porque me comía toda la RAM y la swap.
Siempre lo diré , DesdeLinix es el blog numero uno , gracias a estos artículos tan interesantes. A propósito, encontré la llave que tiró Yoyo de la cárcel donde tienen a Elav , creo que me la quedaré.
Saludos Elav.
Muy útil gracias por e aporte.
Es más fácil
lvm lvresize /dev/vg_laptpop/vl_swap -L +4Gsi estás usando LVM claro (suponiendo que quieres dejar una swap en 4gigas)
Sin embargo, ese aporte está de p%$a madre, no haberlo sabido antes, cuantos formateos me habría ahorrado xDDDD
Yo tengo dos particiones de swap (una en cada disco duro) y con 1 gb de ram uso mínimo entre 200mb y 500mb de swap…