Sábado 31/03/2018

ETIQUETA | Software

Swappiness es una propiedad del núcleo de Linux que permite regular el equilibrio entre la SWAP (memoria de intercambio) y la RAM (memoria de acceso aleatorio).

Se ajusta mediante un parámetro que puede adoptar valores entre "0" y "100". Siendo "0" que no hace intercambio nunca y "100" que el intercambio está habilitado desde el arranque del equipo.

El resto de valores intermedios indican el momento en que el intercambio empezará, dependiendo de la memoria RAM libre. Por ejemplo, 40 indicaría que el intercambio empezará cuando la RAM tuviera menos del 40% libre.

Si usted teclea, en una terminal:

cat /proc/sys/vm/swappiness

Obtendrá un valor que posiblemente sea:

60

Este es el valor por defecto que Linux le asigna a "swappiness" y significa que el intercambio empezará a producirse cuando la memoria RAM tenga menos del 60% libre. Es decir, cuando supere el 40% del uso de la RAM.

Es un valor que le viene muy bien a equipos con bajos recursos, (con poca RAM), donde puede enmarcarse la Raspberry Pi, pero no es válido para todos los ordenadores.

Actualmente, los ordenadores de sobremesa y portátiles, vienen con 8, 16 o 32 GB de RAM y no necesitan memoria de intercambio. Pero si usted decide mantenerla en uso, debe de emplear un valor bajo de "swappiness". Por ejemplo, si tiene un ordenador con 16 GB de RAM y utiliza un "swappiness" de "10", la memoria de intercambio empezará a utilizarse cuando queden 1,6 GB de RAM libre. Mientras tanto no se producirá intercambio y el equipo ganará en rapidez.

Puede probar cambiando el "swappiness" con:

sudo sysctl -w vm.swappiness=10

Esto solo le servirá para probar el resultado, porque en el próximo arranque, el valor volverá a ser "60". Para hacer el cambio definitivo, debe editar "sysctl.conf" con:

sudo nano /etc/sysctl.conf

y añadir en la última línea:

vm.swappiness=10

Con ello "swappiness" adoptará el parámetro "10" definitivamente.

Como he indicado más arriba, 60 es un buen valor para la Raspberrypi. Además, si usamos una tarjeta micro-SD de una capacidad grande, (32 o 64 GB), es aconsejable aumentar la memoria "SWAP", según indico en esta entrada, ya que Raspbian solo reserva 100 megas de SWAP.

Si hemos comprimido la SWAP con ZRAM (como detallo aquí), puede darse la paradoja de que sea interesante ser más agresivo con el "swappiness" y asignarle un valor de 80, ya que ZRAM comprime la SWAP y la sitúa sobre la memoria RAM.

La ventaja que tenemos, con el software libre, es que todo es configurable y podemos adaptarlo a nuestras necesidades. Espero que estas consideraciones le sean de utilidad si está pensando optimizar, en su máquina, el equilibrio entre la memoria RAM y la de intercambio.

§