Optimizar o acelerar tu máquina con Linux
Bueno, ya instalamos GNU/Linux en nuestro modesto computador doble núcleo con 2 GB de RAM y disco duro tradicional. Le hemos instalado Ubuntu MATE minimal para que quede algo liviano. Pero bueno, así le instalemos cualquier otra distribución «liviana» tipo Zorin OS Lite, Lubuntu, Puppy, etc, es bueno aplicar estas recomendaciones para optimizar o acelerar tu máquina con Linux.
¿Por qué debemos optimizar o acelerar una máquina con Linux si éste tiene fama de ser rápido?
Que GNU/Linux tenga la popularidad de rápido, es relativo. Recordemos que una distribución GNU/Linux es la conjunción del kernel y utilerías (programas, interfaces gráficas, etc). Si instalamos solo el kernel (sin interfaz gráfica) tendremos un sistema rápido. Eso es lo que se hace en la mayoría de servidores (y aún así también debemos hacerle algo de optimización).
Otra cosa que pone lenta hasta las distribución más liviana, es el navegador web. Google Chrome y Firefox ocupan bastante memoria a medida que abrimos más y más pestañas. Por eso el sistema comienza a trabajar exhaustivamente con la SWAP al quedarse sin memoria RAM libre. Ahí es cuando todo comienza a ponerse como tortuga.
Debido a que nuestro PC tiene relativamente baja memoria RAM, y funciona con un disco duro tradicional (mecánico), el enfoque de esta optimización es en la memoria virtual (SWAP) y en el proceso de lectura/escritura del disco.
Después de revisar ese enfoque miraremos unas recomendaciones adicionales.
Optimizar el uso del disco duro
1) Entonces empezamos. Primero, debes saber que el almacenamiento en caché de escritura es una característica disponible en la mayoría de los discos duros. Eso permite que el disco duro recopile todos los datos en este tipo de memoria, antes de transferirlos a sus pistas con un solo evento (algo así como NAPI en el subsistema de red de Linux).
Como resultado, sus cabezales se usan de forma más ordenada. Para verificar si el almacenamiento en caché de escritura está habilitado, usa el comando sudo hdparm -W /dev/sda:

Caché de escritura
Bien, claro que si necesitas desactivar la caché escritura puedes usar el comando sudo hdparm -W0 /dev/sda.
2) Verificamos la velocidad de lectura con el comando sudo hdparm -tT /dev/sda:

Velocidad de lectura
Las opciones -tT ejecutan dos tipos de pruebas: una lectura desde la caché del disco (T) y otra lectura a través de la caché (t).
Con la opción -T la prueba solo llega hasta la caché, por eso su velocidad es más rápida. Con la opción -t la prueba llega hasta el disco pasando por la caché.
Hay otra prueba de lectura que se hace saltando la caché. Esa la podemos ejecutar con la opción -t –direct.
Recomiendo realizar esta prueba dos o tres veces seguidas, porque los cabezales del disco pueden estar en reposo al comenzar, y también pueden haber otros procesos usándolo.
3) Aceleramos el proceso de lectura del disco. Para acelerar la transmisión de datos, un disco duro generalmente lee varios sectores al mismo tiempo ¿Cuántos puede leer nuestra unidad de disco al mismo tiempo?
Con el comando sudo hdparm -I /dev/sda podemos averiguarlo. En su resultado, ubiquémonos en algo que dice R/W multiple sector transfer: Max =. El valor Max nos informa la cantidad de sectores que puede leer al mismo tiempo. Entonces el valor de Current debe ser el mismo de MAX (casi siempre MAX es igual a 16). Si no es así, entonces lo igualamos con el siguiente comando:
sudo hdparm -m16 /dev/sda
Otro punto que podemos optimizar es la rapidez de las consultas del sistema operativo al controlador del disco duro. Su estado se puede visualizar con:
hdparm -c /dev/sda
El valor debe ser de 32 bits, pero si no es así, puedes ajustarlo a 32 bits con el modificador -c3.
4) Como opción adicional, podemos usar la aplicación de discos para activar la caché de escritura. Bueno, te soy sincero, no sé la diferencia entre esta opción y la del comando hdparm. Igual podrás comprobar que no hay diferencia al activar esta última opción:
Si no lo encuentras en tu sistema, instalalo así:
sudo apt install gnome-disk-utility
Nota: La cache de escritura no se recomienda para servidores que trabajan con motores de bases de datos.
Optimizar la memoria virtual, SWAP o memoria de intercambio
Debemos optimizar el uso de la SWAP porque las distribuciones GNU/Linux vienen para gestionarla de forma algo imparcial, neutra. O sea, ni optimizada para servidor, ni optimizada para Escritorio, porque al fin de cuentas su enfoque se lo damos nosotros. Sí! podemos usar el mismo Ubuntu Desktop para que funcione como servidor ¿Quién dice que no?, igual tiene el kernel Linux que es con el que nos entendemos para transformar nuestra máquina en cualquier cosa.
5) Bueno, yo echo mucha cháchara. Comencemos. Ejecuta los siguientes comandos para verificar la situación en que nuestro kernel está gestionando la SWAP:
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure
cat /proc/sys/vm/watermark_scale_factor
cat /proc/sys/vm/dirty_ratio
El resultado que cada uno muestra generalmente es como el siguiente, respectivamente: 60, 100, 10, 20.
6) Entonces vamos a ajustar dichos valores, con eso intentaremos mejorar un poco el rendimiento general del sistema. Procedemos a abrir el archivo sysctl.conf:
sudo nano /etc/sysctl.conf
y adicionamos los nuevos valores al final del archivo:
vm.swappiness = 10
vm.vfs_cache_pressure = 50
vm.dirty_ratio = 3
vm.dirty_background_ratio = 5
vm.watermark_scale_factor = 200
Guardamos el archivo y activamos sus nuevos valores con el comando sudo sysctl -p.
Bueno ¿y qué es lo que hace todo eso? Mira, no quiero aburrirte con tanta teoría, pero si has llegado a estos niveles de profundidad, es necesario que la sepas.

La disminución de vfs_cache_pressure hace que el núcleo prefiera conservar directorios e inodos en una caché alojada en RAM. El aumento de vfs_cache_pressure más allá de 100 hace que el núcleo recupere directorios e inodos más frecuentemente, es decir, pasándolos de RAM a disco.
Así que un valor alto va a generar mayor trafico I/O de disco y un valor menor a 100, una disminución del mismo.

El valor intermedio recomendado para vfs_cache_pressure, es 50.
La variable vm.watermark_scale_factor determina el momento en que se activa el demonio Kswapd, o sea, el que inicia el traspaso de datos desde la RAM a la SWAP. También determina la cantidad de información en la memoria que será paginada al disco.
Cambiando el valor de 10 a 200 conseguimos que cuando quede un 2% de RAM libre, se inicie Kswapd para paginar datos de la memoria RAM al disco duro.
Un 0,1% representa una situación extrema que puede hacer que equipos modestos se cuelguen o congelen por falta de recursos y memoria disponible.
El valor por defecto de vm.dirty_ratio es de 40. En nuestro caso lo hemos reducido a 3 mediante el siguiente parámetro:
vm.dirty_ratio = 3
Reduciendo el valor, los datos presentes en la memoria que se han modificado, y por lo tanto son diferentes a los almacenados en el disco duro, se escriben al disco con una frecuencia más alta, pero en cada transferencia la cantidad paginada será mucho menor.
De este modo, en el caso que la velocidad de escritura de nuestro disco duro sea lenta, y/o en el caso que la CPU sea poco potente, notaremos una mejora de rendimiento en nuestro equipo.
En resumidas cuentas, lo que hacemos en el punto 6 es decirle a Linux que use la RAM casi al límite, así moderamos el uso de la SWAP.
Traspasar el contenido de la SWAP a la memoria RAM
7) No es recomendable eso de estar traspasando los datos de la SWAP a la memoria RAM, manualmente. Pero si no quieres reiniciar el computador para limpiar el área de intercambio, puedes usar el siguiente comando (asegúrate de tener espacio libre en memoria):
sudo swapoff -a && sudo swapon -a
Deshabilitar procesos que no usamos
8) Hay servicios instalados que por el uso o el enfoque que le damos a nuestro PC, no los necesitamos activos. Es el caso de ModemManager.service, speech-dispatcher.service, bluetooth.service, pppd-dns.service y openvpn.service. Entonces los deshabilitamos para optimizar o acelerar el booteo de Linux.
Primero listamos todos los servicios activos en nuestro sistema:
sudo systemd-analyze blame (ó sudo systemctl list-unit-files –type=service –state=enabled)
El servicio ModemManager.service se usa para el funcionamiento de esos modems GSM que usabamos con el operador de telefonía, para tener Internet
El servicio pppd-dns.service se usa para la resolución de nombres en conexiones con modems antiguos, de esos de 56 Kbps.
Este otro, speech-dispatcher.service, es un demonio que nos lee cualquier texto que le pasemos como parámetro (en inglés).
9) Listo, procedemos a desactivarlos:
sudo systemctl disable ModemManager.service
sudo systemctl disable pppd-dns.service
sudo systemctl disable speech-dispatcher.service
sudo systemctl disable bluetooth.service
sudo systemctl disable openvpn.service
10) También podemos complementar este procedimiento con algunos servicios que se cargan en nuestro espacio personal:
Instalar prelink
11) Lo que hace prelink es incrementar un poco la velocidad de apertura de los programas. Eso lo logra modificando las librerías compartidas y binarios para que nuestras aplicaciones se inicien más rápido. O sea, si una aplicación que vamos a usar ya tiene las librerías enlazadas en memoria gracias prelink, ésta cargará más rápido.
sudo apt install prelink
Abrimos su archivo de configuración /etc/default/prelink y cambiamos la linea PRELINKING=unknown por PRELINKING=yes. También podemos reemplazar la línea PRELINK_OPTS=-mR por PRELINK_OPTS=-amR.
Antes de iniciar prelink debemos ajustar los permisos de su archivo de configuración, así:
sudo chmod 666 /etc/default/prelink
Y finalmente lo ejecutamos:
sudo prelink -amvR
Cada vez que actualicemos o recompilemos alguna aplicación, debemos volver a ejecutar el anterior comando. Aunque su archivo de configuración lo establece para que se ejecute cada 7 días.
Si necesitas desinstalar prelink, deja su archivo de configuración como estaba recién instalado, y ejecuta los siguiente comandos:
sudo prelink -au
sudo apt-get remove --purge prelink
Optimizar la conexión WiFi
Otro punto dentro de la cadena de la fluidez y la buena expereincia, es la conexión WiFi. Siguiendo estas pautas podemos mejorar notablemente la conexión WiFi en nuestra laptop con Linux.
Recomendaciones adicionales para mejorar la optimización
a. Trate usted de navegar en internet con Opera browser o Falkon. Estos navegadores no consumen tanta memoria RAM. Sin embargo, algunas servicios no funcionan bien ahí, como Netflix. En ese caso particular, podemos hacer el cambio a Firefox.
b. Tampoco se trata de exigirle mucho a estas modestas máquinas. No abuse teniendo tantos programas abiertos.
c. Si le es posible, cámbiele el disco duro por una unidad de estado sólido, SSD.
d. Si es posible amplíele la memoria RAM.
e. Limpie los contactos de la memoria RAM con un borrador. A veces esa capa delgada de óxido que acumulan, interfiere.
f. Instálale un bloqueador de publicidad al navegador. Esos bloques de publicidad son una carga innecesaria para la memoria y el procesador. Yo recomiendo la extensión ‘AdNauseam’.
g. Desactiva las decoraciones y animaciones del gestor ventanas. Todo esas vainas también ocupan espacio en memoria.
h. Desactiva las actualizaciones automáticas de la distribución GNU/Linux. Aunque no es recomendable generalizar esta opción, siempre debemos mantener actualizado el sistema, así sea de forma manual a intervalos de 15 días. En estos casos particulares, yo lo recomiendo porque el módulo de actualización siempre se carga al iniciar el sistema, y eso pone a Linux lento durante los primeros minutos de encendido, dando la sensación bajo rendimiento a la primera impresión.
Optimizar Firefox
a. Activemosle ‘Webrender‘ a Firefox, con esa opción se usará más la GPU que la CPU.
b. Si necesitas trabajar con gráficos renderizados en Firefox, activale ‘webgl.force-enable‘.
c. Puede que Firefox vaya lento porque está recopilando datos técnicos de uso. Desactiva la recopilación.
d. Minimiza su uso de la RAM.
e. Desactiva el uso de pestañas que no se usan después de cierto tiempo. Con la extensión ‘Auto Tab Discard‘ podemos lograrlo.
⇒ Puede que te interese el siguiente artículo sobre optimizar Linux en Servidores y Firewalls:
Y eso es todo.
Valora este artículo:
















Pingback: 🥇 Herramientas de Diagnostico de Hardware en Linux - Ubuntu
Pingback: 🥇 Instalar Firefox con Paquete Deb en Ubuntu y Quitar el de Snap
Pingback: 🥇 Solución a The following packages could receive security en Ubuntu
Pingback: 🥇 Optimizar o Acelerar a Apache Web Server en Linux
Pingback: 🥇 La mejor distribución Linux para una laptop antigua o básica
Pingback: 🥇 Kernel panic al bootear Linux en HP dc5800 Small Form Factor