Swappiness – como optimizar Linux cambiando el uso de la memoria swap

Este artículo es en realidad el cuarto de una serie dedicada a mejorar el rendimiento de los sistemas Linux mediante algunas técnicas de uso de memoria y carga de programas. Estos tutoriales se orientan a equipos cuyo hardware no es muy potente o están un poco justos con la memoria RAM y seguramente puedan obtener un cambio en el uso diario.

Anteriormente vimos 3 herramientas muy interesantes que son:

Ahora vamos a aprender como cambiar la prioridad de uso de la Swap del sistema operativo. Pero la primera pregunta sería entonces: ¿Qué es la Swap? Bien, la memoria swap, también llamada de intercambio, es una partición del disco duro o incluso un archivo dentro del mismo que puede ser utilizado como memoria RAM cuando esta se está acabando. Es decir, si tenemos por ejemplo 2GB de RAM y abrimos varias aplicaciones, el sistema operativo tratará de no quedarse bloqueado por falta de memoria y recurrirá a usar la swap simulando que es RAM.

La ventaja más clara de esto es que evita que se nos congele el sistema y perdamos el trabajo que estamos haciendo. Pero por otra parte, tiene la desventaja de que el disco duro siempre es mucho más lento que la RAM, por lo que notaremos la baja de rendimiento al tener que acceder a esta memoria de respaldo. Con el tiempo se fueron creando herramientas como Zswap y Zram para aprovechar la compresión de la propia memoria RAM y usarla como swap y así no perder tanta velocidad en el funcionamiento.

Sin embargo, otra posibilidad que tenemos es cambiar la prioridad de uso de la swap. Es decir, podemos indicarle al sistema a partir de cuanta memoria RAM ocupada se comenzará a utilizar la de intercambio. A esto se lo conoce como swappiness. A modo de ejemplo, Ubuntu y varias otras distribuciones utilizan una swappiness de 60. Lo que indica este valor es que cuando quede un 60% de RAM libre se comenzará a usar la swap. Como podrás notar puede ser un poco exagerado que al consumir apenas 40% de la memoria de trabajo ya se active la de intercambio que enlentece los procesos o por lo menos da más carga de trabajo al procesador. Lo ideal sería poder modificar este valor. Aquí viene las pruebas que cada uno haga y la mejora de rendimiento que note. En mi caso, casi siempre, uso una swappiness de 10, lo que significa que no se activa la swap hasta que no se esté consumiendo el 90% de la RAM de mi equipo. Con este valor he notado una gran mejora en las distribuciones que uso y así lo configuro en las máquinas de mis clientes.

Como conocer el valor por defecto de swappiness.

Lo primero es conocer el valor de swappines que tenemos por defecto. Para eso escribe el siguiente comando:
cat /proc/sys/vm/swappiness
El número que te devolverá es la swappines configurada por defecto.

Cambiar la swappines de forma temporal.

Puedes modificar el valor de forma temporal para probar, teniendo claro que dicho cambio se perderá al reiniciar el sistema. Se hace con el comando:
echo 10 > /proc/sys/vm/swappiness
En este comando el número 10 representa el valor que queremos darle a la swappines.

Modificar de forma permanente la swappines.

Si queremos colocar un nuevo valor de forma permanente, debemos seguir los siguientes pasos:

  1. Edita el archivo /etc/sysctl.conf (recuerda hacerlo como administrador).
    • Por ejemplo, si tu editor de textos es mousepad, ejecuta: sudo mousepad /etc/sysctl.conf
  2. Al final del texto del archivo agrega esta línea: vm.swappiness = 10
    • Recuerda que el número es el valor que quieras darle.
  3. Guarda los cambios y cierra el archivo. Al reniciar ya quedará el nuevo valor por defecto.

Como podrás ver no es un proceso complejo y notarás seguramente una mejora de rendimiento, sobretodo si (como me pasa a mí) tu equipo no está sobrado de recursos. Espero sea de utilidad esta pequeña guía y a continuación dejo el video donde muestro los pasos a seguir:

Comentarios

Deja una respuesta

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