Lo que necesitas saber sobre la partición de intercambio en Linux

Swap Partition Linux Featured

Cuando instalas Linux, es probable que el proceso de configuración agregue una partición de intercambio al disco duro junto con las particiones para Linux en sí. Pero, ¿para qué se utiliza esta partición de intercambio y realmente es necesaria?

También lee: ¿Necesito intercambio en Ubuntu? El enfoque realista

¿Qué es el intercambio?

Cuando un sistema operativo multitarea se queda sin memoria física, no puede iniciar nuevos procesos o asignar más memoria a los procesos existentes. Para resolver este problema, se reserva un bloque especial de espacio en el almacenamiento local (a menudo el disco duro) para actuar como área de retención temporal para los procesos que no están en ejecución actualmente. El sistema operativo “intercambia” el proceso inactivo de la memoria al disco duro. Esto libera memoria para nuevo trabajo. Cuando el proceso inactivo vuelve a estar activo, se intercambiará de nuevo del almacenamiento local a la memoria. Este procedimiento se conoce como intercambio.

¿Es realmente necesaria la espacio de intercambio?

¿El espacio de intercambio es técnicamente necesario? No. Linux puede funcionar sin él y en algunas situaciones, como soluciones embebidas, Linux puede ejecutarse sin intercambio. Si el sistema operativo entra en una situación donde no tiene suficiente memoria, entrará en pánico y se detendrá. Si hay suficiente RAM física, la máquina funcionará sin problemas.

¿Es prácticamente necesario el espacio de intercambio? Sí. Aunque el intercambio ralentiza una computadora (ya que leer y escribir en un disco duro es mucho más lento que acceder a la RAM) y tener tanta memoria física como sea posible es la mejor solución para evitar el intercambio, hay situaciones legítimas donde el intercambio es deseable. Por ejemplo, durante el arranque del sistema, puede haber procesos que se ejecutan (y así consumen memoria del sistema) pero que luego efectivamente duermen durante períodos de tiempo muy largos. O memoria que se asigna, se escribe y luego nunca se usa nuevamente. En estas situaciones, el algoritmo de intercambio comenzará a migrar esta memoria al disco duro y así liberar memoria valiosa del sistema. Esto asegura que la cantidad máxima de RAM esté disponible en todo momento y así aumenta el rendimiento.

swap-partition-in-gparted

¡En máquinas que no tienen suficiente RAM física para que todo resida en memoria, el uso de la espacio de intercambio es esencial!

Para ser completos, vale la pena mencionar que Linux también tiene un subsistema llamado Out-Of-Memory Killer (OOM), que en lugar de detener el núcleo cuando se queda sin memoria, comenzará a eliminar procesos para liberar recursos. Sus acciones son configurables.

¿Cuánto espacio de intercambio debo asignar?

No hay una regla absoluta y dado que el espacio en disco duro es barato (dólar por Gigabyte), es mejor asignar demasiado que muy poco espacio. Como regla general, deberías tener de dos a tres veces la cantidad de espacio de intercambio que memoria física.

Añadiendo intercambio sin ampliar la partición de intercambio

Hay dos formas de añadir espacio de intercambio a un sistema sin alterar la partición de intercambio existente. Una forma es usar una partición de intercambio en otro disco, la otra es usar un archivo de intercambio.

Para usar otro disco duro, crea una partición del tipo “Linux swap” (código 82) y luego ejecuta el comando “ mkswap ” para preparar el espacio de intercambio:

mkswap /dev/sdb2

Donde /dev/sdb2 es el nombre de la partición que creaste. Para usar el espacio de intercambio inmediatamente, usa el comando “ swapon ”:

swapon /dev/sdb2

Usa “ swapon -s ” para obtener una lista de los espacios de intercambio utilizados actualmente. Para añadir permanentemente el espacio de intercambio al sistema, necesitarás editar el archivo /etc/fstab y agregar una línea similar a esta:

/dev/sdb2       none    swap    sw      00

Si tu sistema está usando identificadores únicos para nombrar los discos, usa el comando blkid para obtener una lista de ids para los dispositivos. La línea para montar el espacio de intercambio en /etc/fstab debería verse algo así:

UUID=036da155-1ea1-4392-b8d4-700f65aa1ead  none  swap  sw  00

Para usar un archivo para intercambio, crea un archivo en blanco grande (usando dd) en el sistema de archivos que deseas usar para intercambiar. Por ejemplo, para crear un archivo de 1GB, escribe:

dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576

Donde /store/swapfile es la ruta al archivo de intercambio en el sistema de archivos deseado.

Al igual que con la partición de intercambio adicional, el archivo ahora necesita ser preparado con mkswap y luego usado con swapon. También debe ser añadido al archivo /etc/fstab. El procedimiento es exactamente el mismo que arriba, pero debes usar /store/swapfile en lugar de /dev/sdb2 como el parámetro de espacio de intercambio.

Swappiness

El núcleo de Linux puede ser ajustado para definir cuán agresivamente debería intentar intercambiar procesos fuera de la memoria. Esta tendencia está controlada por una variable del núcleo llamada swappiness. Un swappiness de 0 significa que el núcleo evitará el intercambio tanto como sea posible, mientras que 100 significa que el núcleo será agresivo en cómo usa el espacio de intercambio. La configuración por defecto para muchas distribuciones de Linux es 60. Es posible cambiar el número dinámicamente usando este comando:

sudo sysctl vm.swappiness=10

Para establecer un valor permanentemente, necesitas cambiar (o agregar, si no existe) la variable vm.swappiness en el archivo /etc/sysctl.conf.

Háganos saber si tienes preguntas sobre el intercambio en Linux.

Este artículo fue publicado por primera vez en diciembre de 2013 y fue actualizado en agosto de 2020.

Crédito de la imagen: intercambio