optimizar o acelerar tu máquina con linux

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, siempre debemos realizar el siguiente procedimiento y 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 conjución del kernel y utilerías (programas, interfaces gráficas, etc). Si instalamos solo el kernel (sin interfaz gráfica) tendrémos 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. Google Chrome y Firefox ocupan bastante memoria a medida que incrementamos el número de sus pestañas. Por eso el sistema comienza a trabajar exhaustivamente con la SWAP al quedarse sin memoria. 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 SATA, el enfoque de esta optimización es la memoria virtual (SWAP) y el proceso de lectura/escritura del disco. Después de revisar ese enfoque, mirarémos 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 su memoria caché (la del disco) antes de que se escriban permanentemente. Una vez que se recopila cierta cantidad de datos en su memoria caché, toda la porción de datos se transfiere y almacena en las pistas con un solo evento.

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:

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:

Las opciones -tT ejecutan dos tipos de pruebas: una lectura desde la caché del disco (T) y otra lectura atravé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.

optimizar o acelerar tu máquina con linux

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 usandolo.

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, ubiquemonos 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 rápidez 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 transfomar nuestra máquina en cualquier cosa.

5) Bueno, yo echo mucha chachara. 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 intentarémos 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 es necesario que la sepas.

Al tener un valor inferior de swappiness (10) nuestro sistema operativo hará un uso mucho menor de la memoria de intercambio. Como el uso de la memoria de intercambio será menor, la fluidez en la ejecución y uso de los programas será mejor.

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.

Asi que un valor alto va a generar mayor trafico I/O de disco y un valor menor a 100, una disminución del mismo.

 

optimizar o acelerar tu máquina con linuxPoner un valor bajo, permite que las operaciones se realicen en RAM, y asi ganar velocidad, como bajar la cantidad de operaciones en disco, aumentando su vida útil.

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.

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 código:

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.

optimizar o acelerar tu máquina con linux

Traspasar el contenido de la SWAP a la memoria RAM


7) No es que sea muy práctico ni 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 (eso sí, asegurate de tener espacio en memoria libre):

_$ 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, nos los necesitamos activos. Tal 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

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.

_$ 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.conf

Y finalmente lo ejecutamos:

_$ sudo prelink -amvR

Cada vez que actualicemos o recompilemos alguna aplicación, debemos volver a ejecutar el antrior comando. Aunque su archivo de configuración lo establece para que se ejecute cada 7 días.

Si necesitas desintalar 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 

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 máquinas modestas. No abuse teniendo tantos programas abiertos.

c. Si le es posible, cambiele el disco duro por una unidad de estado sólido, SSD.

d. Si es posible ampliele 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. Instalele o activele un bloqueador de publicidad al navegador. Esos bloques de publicidad son una carga innecesaria para la memoria y el procesador.

g. Descativa las decoraciones y animaciones del gestor ventanas. Todo esas vainas también ocupan espacio en memoria.

optimizar o acelerar tu máquina con linux

 

Y eso es todo.

Valora este artículo:

Optimizar o Acelerar tu máquina con Linux
0,0 rating based on 12.345 ratings
Overall rating: 0 out of 5 based on 0 reviews.

 

Name
Email
Review Title
Rating
Review Content

 

Comparte esto en
Publicado en GNU Linux.