Ir al contenido principal

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

Si tienes el problema en que de la noche a la mañana por culpa de algún duende, tus botones capacitivos de tu Samsung S6 (botón Atrás y botón Aplicaciones recientes) funcionan pero no encienden ni vibran, aquí la solución paliativa.

El problema es un bug reconocido por la comunidad de Android, que aún (al día de la fecha) en Android 5.1.1 no ha sido resuelto. Se trata de un problema al activar el Ahorro de Energía, que de forma correcta deshabilita la vibración y luminosidad de las teclas capacitivas, pero aún desactivandolo siguen deshabilitadas.


Cuando tus botones capacitivos no respondan como deben (me resultan útiles que vibren o se enciendan), debemos:
Entra en el Ahorro de Energía.En "Iniciar ahorro de energía", selecciona "Inmediatamente".Apaga el Ahorro de energía.(Si quieres) Vuelve a encenderlo y configuralo con un porcentaje a gusto. Los botones capacitivos ahora funcionarán.Quizás, en una próxima actualización de Android Lollipop solucionen este pequeño bu…

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

Muchos conocerán los beneficios y funcionalidades que nos provee OCS Inventory. Es por eso que si has llegado hasta aquí, daré por sentado que ya conoces qué se puede hacer con este increíble Software.

Tomé la decisión de hacer un pequeño tutorial de instalación de OCS Inventory NG en su versión Server sobre Ubuntu Linux 14.04 LTS originado por varios motivos: mi exitosa experiencia utilizado e implementando ésta solución, la Wiki del proyecto no está actualizada "al día", y (lo más importante) porque existe mucha documentación fragmentada en la Web, en idioma francés, italiano, y con mucha información algo incompleta.

Nota 1: Asumo que dispones de conocimientos básicos de Ubuntu, Apache y Mysql. Ante una duda, deja un comentario, o bien indaga en la Web. No duele ;D

Nota 2: Este instructivo esta basado en la versión de OCS Inventory NG version 2.2 al día de la fecha de publicación.

Nota 3: configura tu Ubuntu con una IP estática/fija.

Requisitos de paquetería

Actualiza Ubuntu a …

Enviar mensaje masivo a PCs con Windows en un Dominio

En la oficina estábamos tratando de optimizar el proceso de reinicio de un Servicio indispensable para gran parte de los usuarios de la empresa, pero sin caer en el viejo y obsoleto método del correo o la llamada telefónica. La duda era, ¿cómo les notificamos de forma fácil que debíamos reiniciar el Servicio?

Era indispensable que los usuarios cerrasen sus Apps que se conectaban a dicho "demonio", para así tener la tranquilidad de que esos programas no quedasen "frizados" y evitar el maremoto de llamadas y reclamos para luego matar uno a uno dicho proceso de forma remota.

En Windows, el comando que debemos usar es msg.exe, no disponible en Windows XP, pero si para Windows Vista y posteriores.

Primero, necesitábamos listar aquellos equipos que tenían la App dependiente de dicho Servicio, armar un listado con ellas y así ejecutar el comando msg en función a ese listado. Para ello, acudimos a nuestro System Center Configuration Manager, y mediante un Reporte, listamos…