Les voy a a mostrar cómo ajustar el uso de la memoria virtual en Ubuntu, de modo tal de evitar que al final se termine convirtiendo en un lastre y haciendo que el rendimiento sea peor de lo que sería sin ella.
Y es que aunque la idea de utilizar un archivo o partición de intercambio no es mala en si misma sino todo lo contrario, si no está bien implementada puede generar un excesivo uso del disco duro, sobre todo en los SSD, mucho más lento que la memoria RAM.
Por ello, el uso de la partición swap, o un swapfile, debe limitarse a situaciones en las cuales no queda otra alternativa más que utilizarla, momentos en los cuales servirá de apoyo a la memoria principal (que es la RAM).
Si en lugar de ello la utilizamos en todo momento, incluso a veces antes que la memoria RAM, nuestro rendimiento se verá penalizado.
Para ello, entonces, cómo ajustar el uso de la memoria virtual en Linux mediante el comando Swappiness.
En nuestro sistema operativo la creación de la memoria virtual se suele realizar durante el proceso de instalación, momento en el cual definimos la partición raíz (/), la de almacenamiento (/home) y la de intercambio o swap.
El parámetro del kernel que gestiona el uso de la memoria virtual es el anteriormente mencionado swappiness, y básicamente podemos decir que se encarga de definir que tan seguido accedemos a la partición de intercambio y que tanto contenido copiamos en ella, mediante un argumento que varía entre 0 y 100.
El valor por defecto en una instalación de Linux es de 60, pero como es fácil suponer no todas las configuraciones de hardware son iguales y por ello tampoco tiene sentido mantener ese nivel sin importar cual es la nuestra.
Dicho valor se puede acceder en el registro de procesos /proc/sys/vm/swappiness, y podemos comprobarlo mediante:
$ cat /proc/sys/vm/swappiness
Casi seguro estará en 60, y si ese es el caso puede que debamos modificarlo, sobre todo si tenemos más de 4 GB de memoria RAM ya que es lo habitual será que necesitemos poco y nada de la memoria virtual.
Pero antes de explicar como modificar eso veamos un poco cual es la lógica detrás de todo este asunto de la memoria virtual y la swappiness; y es que cuando se lo deja por defecto en 60 lo que se le dice al kernel es que vaya y utilice la memoria virtual cuando nuestra memoria RAM tenga el 40 por ciento o menos de su capacidad libre.
Por ende, si establecemos swappiness igual a 100 la memoria virtual se utilizará todo el tiempo, y si la dejamos en un valor muy bajo se utilizará únicamente cuando nuestra memoria RAM esté a punto de agotarse. El mínimo posible es de 1, ya que dejando el valor igual a 0 desactivamos la memoria virtua por completo.
Entonces,lo que tenemos que hacer es ingresar el siguiente comando desde la terminal (Ctrl + Alt + T):
sudo sysctl vm.swappiness=10
Ahora el valor de swappiness quedará en 10, y entonces la memoria virtual apenas se utilizará. (Comprobar haciendo cat al registro del procesor, mencionado anteriormente)
Una vez cambiado este valor no es necesario reiniciar el equipo sino que surte efecto de inmediato, y de hecho si reiniciamos el valor volverá a estar ubicado en 60 como antes, porque lo que vamos a necesitar es dejar este cambio establecido en forma permanente.
Para ello, una vez que hemos utilizado nuestro ordenador y comprobado que todo marcha bien con el nuevo valor de swappiness, ejecutamos:
sudo nano /etc/sysctl.conf
tras lo cual buscamos el texto vm.swappiness= y agregamos el valor deseado luego del símbolo igual. Guardamos el archivo y ahora si, el cambio será permanente, una vez que se reinicie.