La partición swap funciona para aumentar la RAM de una computadora. Bueno, no la aumenta pero hace que el sistema operativo pueda alojar algunos datos en el disco duro.

Eso sí, agregar una swap de 10 terabytes no ayudaría a tener la computadora más rápida; de hecho el swap es únicamente una ayuda, no es RAM real. Todo esto es porque, aunque sí se puede crear una partición de intercambio de cualquier tamaño, la lectura del disco duro es más lenta que la lectura de la RAM.

Pero bueno, no vamos a meternos en explicaciones técnicas; puedes leer más en la Wikipedia. El tutorial de hoy indica cómo agregar un archivo que funcionará como memoria de intercambio o swap, en una computadora con Linux Ubuntu Server.

La versión de Ubuntu es la 18.10 pero seguramente funciona en otras versiones; ya sea anteriores o superiores (suponiendo que lees esto después de abril del 2019).

Nota: no vamos a agregar una partición swap, sino un archivo swap. Ambos funcionan igual, y tienen ventajas y desventajas. Por cierto, esto del archivo swap es por si no pudiste hacer la partición y tienes que agregar el archivo encima; de ahí se recomienda siempre crear una partición en lugar de un archivo.

El tamaño de la swap

Hay muchas recomendaciones, algunos dicen que lo doble de la RAM, otros que la mitad. Vamos a tomar lo que dice RedHat en su página, y dice así (todo esto suponiendo que no vamos a permitir la hibernacion):

Si tenemos menos de 2 GB de RAM, entonces el tamaño de la swap debe ser el doble de la RAM. En caso de tener entre 2GB y 8GB de RAM, el tamaño recomendado es igual al de la RAM, o sea, la swap debe ser del mismo tamaño que la RAM verdadera.

En caso de tener entre 8 y 64 GB de RAM, el tamaño de la memoria de intercambio (swap) debe ser de entre 4GB y la mitad de la RAM disponible. Por ejemplo, si tenemos 16 GB de RAM deberíamos tener entre 4GB y 8 GB.

Finalmente, si la RAM es mayor a 64 depende del trabajo que realice nuestra computadora, pero debería ser de al menos 4 GB.

Verificar si no tenemos un archivo de swap antes de crearlo

No se recomienda tener dos archivos de swap en nuestro sistema, sólo uno. Por ello primero se comprueba con:

sudo swapon --show

En caso de que no imprima nada (aparte de pedir la contraseña en algunos casos) significa que no hay swap actualmente.

Si imprime algo, entonces ya tenemos uno. La siguiente imagen muestra un ejemplo de cuando ya existe el archivo o partición swap:

Partición o archivo swap ya existe

Partición o archivo swap ya existe

Lo digo de nuevo, si no imprime nada entonces sigue con el tutorial.

Crear archivo de intercamio o swap en Linux Ubuntu

Ahora sí, después de comprobar si ya tenemos un archivo de intercambio vamos a crear uno.

Antes de todo, quiero aclarar que el nombre del archivo así como su ubicación puede ser cualquiera. Algunos lo montan directamente en /, otros en /home, etcétera. Nosotros lo vamos a crear en /var con el nombre swap_file.

Para ello ejecutamos:

sudo fallocate -l 250M /var/swap_file

El comando fallocate sirve para prealojar espacio en un archivo; el espacio lo especificamos con la opción -l que indica la longitud (serían 250 MB). El último argumento es el nombre del archivo que vamos a alojar.

Cuando el archivo haya sido creado, es momento de protegerlo para que solamente root pueda modificarlo. En este caso utilizamos chmod.

sudo chmod 600 /var/swap_file

Ahora viene el paso final y es convertir nuestro archivo en un fichero de intercambio, utilizando mkswap (make swap):

sudo mkswap /var/swap_file

Todo eso está en la siguiente captura (los ^C se fueron por error):

Crear archivo de intercambio o swap con mkswap

Crear archivo de intercambio o swap con mkswap

Con eso hemos creado el swap, pero falta encenderlo o activarlo. Si lo queremos encender, ejecutamos:

sudo swapon /var/swap_file

Finalmente vamos a hacer que el cambio sea permanente incluso tras un reinicio. Eso se consigue editando el archivo /etc/fstab que monta los sistemas de archivos y esas cosas. Lo editamos con nano o un editor de texto. Si es con nano, ejecutamos:

sudo nano /etc/fstab

Y agregamos la siguiente línea:

/var/swap_file swap swap defaults 0 0

Es como una línea con columnas. La primera indica la ubicación del enlace (sería el archivo que creamos), la segunda indica en qué parte del sistema se va a montar (en swap). La tercera indica el tipo de sistema de archivos (por eso es de tipo swap).

El cuarto campo indica las opciones al montar; las dejamos en defaults. El quinto y sexto campo especifican un comportamiento para dump y fsck, los cuales dejamos en 0; no miento, aquí está el manual.

Editando el archivo fstab para agregar fichero swap en Linux

Editando el archivo fstab para agregar fichero swap en Linux

Luego de editar guardamos cambios; si es nano entonces primero presiona Ctrl + O, presiona Enter y finalmente Ctrl + X.

Comprobar si hemos creado el archivo swap

Vuelve a ejecutar el comando que dejamos arriba; ahora debe imprimir los valores que configuramos. Recomiendo reiniciar la computadora.

Eliminar archivo swap

Si quieres eliminar el archivo que hemos creado, primero apágalo como swap:

sudo swapoff /var/swap_file

Luego quita lo que agregamos a /etc/fstab, es decir, remueve la línea y guarda cambios. Finalmente elimina el archivo com:

sudo rm /var/swap_file

Listo.

Estoy interesado en trabajar contigo de manera remota para llevar tu idea a la realidad, formar parte de tu equipo de desarrolladores, ayudarte con tu tarea, dar asesorías y todo lo relacionado con tecnología y programación. Contáctame para más información
No te vayas sin seguirme en Twitter, Facebook y GitHub
Si tienes dudas déjalas en un comentario, pero asegúrate de seguirme antes como agradecimiento (no te cuesta nada y me ayudas mucho)


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB. Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron. Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scripts La plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C. Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: