Cómo ampliar la memoria SWAP en Linux

La SWAP es una zona del disco (un fichero o partición) que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física. A este espacio se le suele llamar swap, del inglés «intercambiar».

https://es.wikipedia.org/wiki/Espacio_de_intercambio

Archivo SWAP

Es un fichero en blanco puede prepararse para ser usado como área de intercambio. Esto tiene una gran ventaja:

  • es fácil de crear, borrar, ampliar o reducir, según se crea necesario (a diferencia de una partición)

Pero también alguna desventaja:

  • le afecta la fragmentación, ya que se encuentra dentro de un sistema de ficheros

El problema de la fragmentación no es grave, ya que el espacio de intercambio no siempre es accedido de forma secuencial, sino directa (en oposición a la secuencial).

Partición SWAP

También se puede dedicar una partición entera del disco duro (o el disco completo) como área de intercambio. Ventajas:

  • se puede conseguir mejor rendimiento si se coloca la partición en la zona más rápida del disco, que es al principio (en los cilindros exteriores del disco los datos están más separados y el posicionamiento de la cabeza lectora y la localización de la información es más lenta);
  • no hay problemas de fragmentación
  • no hay que usar ningún sistema de ficheros en concreto

Tiene pocas desventajas:

  • crear una partición es un proceso más largo; de todas formas, si se elige bien el tamaño de la partición, no hará falta ningún cambio en el futuro
  • la partición siempre ocupará el mismo espacio, aunque no se esté usando al 100%

Tamaño ideal para la partición SWAP de Linux

Tradicionalmente la regla más popular a la hora de seleccionar el tamaño de la partición SWAP es elegir el doble del tamaño de la memoria RAM disponible en nuestro ordenador, pero debido a la gran cantidad de RAM de la que disponen los ordenadores de hoy en día, Rosell Coker propone las siguientes premisas:

  • Hasta 1GB de RAM la SWAP debería tener un tamaño igual al de la RAM.
  • Entre 2GB y 4GB de RAM el tamaño de la SWAP debería ser la mitad de la memoria RAM.
  • Para equipos con más de 4GB de RAM la SWAP debería tener un tamaño máximo de 2GB.

Este artículo asume que posees los conocimientos mínimos de Linux, sabes cómo usar la terminal, y lo más importante, conoces tu servidor. La instalación y configuración es simple y se asume que estás ejecutando la terminal con la cuenta de root, si no es así, deberás adicionar ‘sudo’ a los comandos para obtener los privilegios de root.

Configuración de un archivo SWAP

Paso 1

El primer paso consiste en verificar la información del sistema con los siguientes comandos:

swapon -s

Con el comando free podemos verificar los distintos tipos de memoria:

free -m

Paso 2

El siguiente paso consiste en revisar el espacio disponible en las particiones del disco duro mediante el comando df:

df -h

Paso 3

Crear el archivo SWAP con el comando fallocate:

fallocate -l 4G /swapfile

Comprobar que se ha creado el archivo

ls -lh /swapfile

Paso 4

Habilitar el archivo SWAP, primero es necesario ajustar los permisos de acceso:

chmod 600 /swapfile

El siguiente paso es notificar al sistema que el archivo se usará como memoria SWAP:

mkswap /swapfile

Activar el archivo como memoria SWAP

swapon /swapfile

Verificar que la nueva memoria SWAP esté configurada:

swapon -s
free -mh

Paso 5

Hacer permanente los cambios en la memoria SWAP, modificando el archivo fstab:

nano /etc/fstab

Adicionar al final del archivo:

/swapfile   none    swap    sw    0   0

Paso 6

Para validar que los cambios en el archivo fstab son correctos, ejecutar el comando:

mount -a

Optimizar la Memoria SWAP

Para mejorar el rendimiento es necesario modificar el parámetro swappiness.

El «swappinness» es un valor que va de 0 a 100. Cuando el valor esté cerca de 0, no se intercambiará datos en el disco a menos que sea absolutamente necesario. Si por el contrario, el valor está más cerca de 100, se llevarán a cabo un mayor número de intercambios para dejar más espacio libre en la RAM.

https://www.stackscale.com/es/blog/anadir-memoria-swap-servidor-ubuntu/#Paso_4_Habilitar_el_archivo_swap
nano /etc/sysctl.conf

Adicionar al final del archivo:

vm.swappiness=10

Reiniciar para aplicar los cambios

También me gustaría compartirles otros artículos que pueden ser de su interés:

Entradas relacionadas