Swap en Linux

Rawcaptured | Shutterstock

Generalmente cuando queremos probar una distribución de Linux en nuestro ordenador, el proceso de instalación nos pide asignar un espacio para el sistema y otro para el swap. Los usuarios avanzados no tienen problemas para saber la cantidad de espacio que necesitan asignar a uno u otro, pero para los usuarios menos expertos o aquellos que van a instalar Linux por primera vez, esto puede causar bastantes conflictos.
Swap es un espacio de intercambio que utiliza el disco duro, en lugar de la RAM para almacenar datos temporalmente.
Cuando encendemos el ordenador, la memoria RAM está casi intacta, pues sólo se están ejecutando procesos que permiten arrancar el sistema, pero no hay ningún programa abierto. A medida que abrimos el navegador, el reproductor de medios, Skype o cualquier otro programa, la memoria se va llenando y el PC va cada vez más lento. Cuando llegamos al tope de la memoria y no queda más espacio, el sistema operativo suele matar procesos, comenzando por aquellos que no afecten el funcionamiento del sistema, es decir, por el navegador o por Skype.

El swap es un espacio de intercambio, que bien puede ser una partición lógica en el disco o simplemente un archivo. En lugar de utilizar espacio en memoria RAM, el swap utiliza espacio en disco duro para almacenar datos temporales, reduciendo así el uso de la RAM. El conjunto combinado de memoria RAM y swap crean una memoria virtual mayor a la que trae el ordenador por defecto. Así, el Kernel de Linux puede ejecutar procesos que requieren de más memoria de la que se encuentra físicamente disponible.

Swap en Linux
Ign11 | Flickr

El parámetro swappiness representa la preferencia del kernel (la cantidad y la frecuencia) para utilizar swap. Swappiness puede tener un valor entre 0 y 100, pero por defecto se utiliza 60. Hay que aclarar que este valor puede no ser igualmente eficaz en todos los casos, ya que dependerá del uso individual, las especificaciones del hardware o las necesidades del usuario.

Cuanto mayor sea el valor del parámetro swappiness, más agresivamente el kernel utilizará swap. Por ello, se recomienda utilizar un valor bajo que reduzca el intercambio desde RAM y mejore la capacidad de respuesta del sistema (rendimiento global, funcionalidad y velocidad del sistema operativo).

Cambiando el valor de swap mediante terminal

Acceder al disco duro es mucho más lento que acceder a memoria RAM. Así que, si tenemos un ordenador con buena memoria RAM, lo más conveniente es reducir el acceso a swap, para aprovecharla.

El valor del parámetro swappiness se almacena en un archivo de configuración de texto simple que se ubica en /proc/sys/vm con el nombre "swappiness". Si te desplazas al directorio con permisos de administrador, es posible localizar el archivo y abrirlo para comprobar el valor swappiness de tu sistema. Puedes hacer lo mismo en la terminal si escribes:

sudo cat /proc/sys/vm/swappiness

El valor devuelto a menudo es 60, que es el valor por defecto de swap. Si queremos reducirlo escribiremos:

sudo sysctl -w vm.swappiness=10

El sistema recuperará su valor por defecto después de reiniciar el PC, pero si vemos que con la reducción de swappiness se obtuvo un mejor rendimiento, podemos grabar ese valor de forma definitiva abriendo el archivo de configuración con el comando:

sudo gedit /etc/sysctl.conf

Y escribiendo en la última línea:

vm.swappiness=10

Virtual Memory Modifier

Swap en Linux

Si no te gusta utilizar la terminal y prefieres algo más visual, puedes instalar una pequeña aplicación que hace exactamente lo mismo. Para instalar Virtual Memory Modifier (VMM) y modificar el swap en Linux añade el repositorio mediante el comando:

sudo add-apt-repository ppa:atareao/atareao

Actualiza tu sistema: sudo apt-get update

E instala VMM mediante el siguiente comando:

sudo apt-get install vmm

Una vez instalada podrás encontrarla en Menú/Accesorios/Virtual Memory Modifier