Disminuir el Swap a disco (Swappiness) y mejorar el rendimiento de Linux



Entender el funcionamiento interno de un Sistema Operativo, en éste caso Linux, nos hace comprender otras cosas sumergidas en él, y con ello surgen nuevos conocimientos que no nos dejan de sorprender. Tal es el caso de la Memoria Swap o Memoria de Intercambio.

La Memoria Swap o de Intercambio no es más que espacio libre en el Disco Duro que está destinado a solventar la saturación de nuestra memoria RAM, donde se "mapea" por así decirlo todo el Sistema Operativo y los programas una vez iniciados.

En Linux, ésta memoria se puede controlar de diversas formas. Pero entrar en sus detalles me llevaría otro post hablando exclusivamente de ello. Por ahora explicaré la forma de configurar a Linux para que disminuya el swapeo o swapping (acción de volcar los datos a disco una vez saturada la RAM o memoria física) así de esta forma, podremos utilizar hasta un límite X la RAM, y recién volcar sus datos a disco (swapping). Particularmente ésto me provocaba (por ejemplo) que al abrir varias maquinas virtuales, o cuando mi RAM llegaba un poco más a la mitad de estar ocupada, el disco se ponía a trabajar ralentizándome el sistema.

Para saber el porcentaje de RAM que utiliza Linux antes de hacer swappiness, tipeamos en consola:
[bachi@localhost ~]$ cat /proc/sys/vm/swappiness

Lo que nos devolverá (en la mayoría de las Distros) el valor 60. Es decir que, cuando Linux llega a ocupar el 60% de RAM, empieza el volcado de memoria a disco o lo que se demonina "swapeo". Ésto implica que mayor es el número resultante, más swapeará a disco Linux.

Para disminuirlo "en caliente", debemos ejecutar (como Root):
[bachi@localhost ~]$ sudo sysctl vm.swappiness=5

De ésta forma, testearemos el comportamiento del sistema con ese nivel de swappiness, implicando que en cualquier momento podremos volver a cambiar el valor utilizando otro valor (10, 15, 20, etc.).

Si no hemos tenido problemas con nuestro Sistema, podríamos hacer éste cambio definitivo, editando el archivo /etc/sysctl.conf. Dentro de él, agregamos al final del archivo la siguiente línea:
vm.swappiness=5
Guardamos y reiniciamos. De ahora en más, ya dispondremos de más actividad directa entre nuestro CPU y la RAM, sin utilizar tanto el volcado de datos al disco y aumentando el rendimiento de Linux.

Nota: como es un cambio a nivel Kernel, ésto es aplicable a cualquier Distribución que use de Kernel Linux.
4 comentarios

Entradas populares de este blog

Botones capacitivos no vibran o encienden en Samsung S6

PARTE I: Instalar OCS Inventory NG (Server) en Ubuntu Linux 14.04 LTS

Enviar mensaje masivo a PCs con Windows en un Dominio