Optimizar el uso de memoria RAM y Swap en Linux (Swappiness)

En el Kernel Linux, existe la posibilidad de configurar la proporción/relación de uso que se va a dar a la memoria RAM y a la memoria Swap en nuestro sistema.

Como la mayoría sabéis la memoria Swap, también conocida como memoria o espacio de intercambio es simplemente una partición asignada en un disco duro (del tamaño que estimemos necesario) cuya función es actuar como si de memoria RAM se tratase en el momento que hay poca memoria RAM disponible en el sistema.

Existe una gran penalización cuando usamos Swap en vez de RAM, ya que utilizamos el disco para el volcado de los datos que normalmente tendrían que ir en memoria física (RAM), esto provoca la ralentización general del sistema operativo, por lo que normalmente hay que intentar usar la menor cantidad de memoria Swap posible.

El objetivo de este artículo no es explicar las ventajas/desventajas de cada una de las memorias, sino saber cómo decirle a nuestro sistema operativo, y en concreto al Kernel Linux que porcentaje/ratio de memoria RAM usada es el límite para comenzar a utilizar swap.

Existe un parámetro a nivel de kernel, swappiness al que podemos asignarle un valor, de 0 a 100, que indicará la preferencia de la memoria Swap respecto a la RAM, la tendencia del sistema a mover procesos a disco en lugar de a memoria física.

Un valor de swappiness alto provocará que el kernel tenga tendencia a utilizar más memoria Swap, mientras que cuanto más bajo sea, mayor preferencia tendrá la memoria RAM. Por defecto creo recordar que el valor de swappiness es de 60:

$ cat /proc/sys/vm/swappiness
60

Para modificarlo a tiempo real, hacemos uso de sysctl del siguiente modo (como root):

sysctl vm.swappiness=30

Hay que tener en cuenta que de este modo perderemos el cambio tras un reinicio, para modificarlo de forma permanente editamos el fichero /etc/sysctl.conf

vim /etc/sysctl.conf

Y añadimos/modificamos:

vm.swappiness=30

Conviene probar diferentes valores hasta dar con el correcto, pues cada sistema puede tener unos requerimientos especiales, es interesante probar a tiempo real y controlar el rendimiento del sistema hasta dar con el valor óptimo para nuestros sistemas.

6 comentarios en “Optimizar el uso de memoria RAM y Swap en Linux (Swappiness)

  1. Buen post. Pero bueno, si lo que uno busca es que el OS trabaje más sobre RAM, lo primero que se tendría que hacer, antes de tocar nada, sería ir al Monitor del Sistema, y ver cuanta memória de intercambio se está utilizando.

    Yo tengo 2GB de RAM y la verdad que nunca he visto nada en el la memória de intercambio. Mi valor de wappiness también está en 60.

    Saludos!!

  2. Muy bueno, gracias por el dato que sera util en cierto casos.

    Aunque esto solo servira cuando tu pc tenga buena cantidad de memoria RAM para asi poder optimizarla.

Comments are closed.