5.9.2018
Acá nos encontramos nuevamente, buscando la manera de sacarle el mayor rendimiento posible a nuestros equipos. En este caso nos vamos a enfocar a las cosas que podemos modificar para que nuestra computadora con Ubuntu funcione de manera optima.
Esta pequeña guía esta apuntada a la mejora del propio sistema operativo, no nos vamos a meter en hardware. Logicamente, si quisieras mejorar el rendimiento los cambios mas importantes los vas a lograr mediante discos SSD, más RAM, procesador más potente, RAID, etc. Esta de más decir que cada uno es responsable de su computadora, por lo que, si bien hemos probado estos consejos... ⚠️ disclaimer: si borras todos tus datos o el sistema operativo queda inservible la responsabilidad es toda tuya.
Hechas las aclaraciones pertinentes, arrancamos.
Regla Nº1 de optimización.
Tal como lo dice el título, la regla Nº 1 es: Si tu maquina no funciona bien, lo primero que tenemos que hacer es reinstalar y comenzar de 0 con un sistema operativo limpio. Seguramente que con el tiempo, instalaciones/desinstalaciones, malas configuraciones, etc, el sistema operativo se degrade. Con esto vamos a lograr 2 cosas, primero, tener conocimiento del rendimiento que puede dar la computadora de fabrica y segundo que a partir de acá es fácil identificar las posibles causas que generaron la perdida de rendimiento.
Selección de entorno de escritorio.
El desktop enviroment (DE), generalmente, es el primer responsable del consumo de memoria base y tiempos de booteo. KDE, Gnome, Budgie pueden consumir desde 500MB hasta los 1.3GB. LXDE y XFCE que de los DE livianos son los más amigables al usuario, de 250MB hasta 400MB. Los que realmente ganan la batalla aquí son los ultralivianos Openbox, i3 y DWM con 8MB, 6MB y 2MB respectivamente. Para nuestro gusto i3 es el más balanceado entre dificultad de configuración y rendimiento (aunque Openbox lo sigue de muy cerca).
Desactivar servicios al inicio.
Systemd nos dá una herramienta llamada systemd-analyze
que nos permite identificar el tiempo que consume cada proceso al inicio del sistema.
systemd-analyze blame
Este comando muestra los servicios y los tiempos ordenados de mayor a menor. Una vez identificado, e interiorizada la función que cumple, si consideran que no es esencial o de no utilidad se pueden desactivar con el comando:
sudo systemctl disable SERVICIO
Optimización de RAM.
Acá viene un tema polémico: swappiness. El swappiness es un parametro del kernel que maneja la "agresividad" de la paginación de memoria. Este tema es polémico porque varia en función de la cantidad de memoria que cuenta el equipo y el uso en general del sistema. El valor por defecto es de 60. Para no ponernos muy técnicos dejamos la siguiente tabla:
Memoria física | Valor swappiness |
---|---|
< 2GB | 70 |
entre 2GB y 4GB | 30 |
mayor a 4GB | 10 |
Por ejemplo para cambiar el valor de swappiness a 10 hasta el próximo reinicio ingresar
sudo echo 10 > /proc/sys/vm/swappiness
Para hacer estos cambios permanentes editar el archivo /etc/sysctl.d/99-sysctl.conf
como root con las siguientes líneas:
vm.swappiness=10
vm.vfs_cache_pressure=50
vm.dirty_background_bytes=16777216
vm.dirty_bytes=50331648
Optimizar RAM en equipos con menos de 4GB.
Si tu maquina tiene menos de 4GB de RAM (y partición swap) podes acelerar Ubuntu "aumentando" esa capacidad a costa de ciclos del procesador usando zswap
. zswap
es a grosso modo un módulo del kernel que su función es la de crear una partición swap comprimida en memoria. Cuando el kernel tiene que paginar memoria, en vez de paginar al disco se comprime y se almacena en esta área.
Para activar esta caracteristica:
1.- Verificar que el kernel lo soporta
cat /boot/config-`uname -r` | grep -i zswap
Si el resultado es CONFIG_ZSWAP=y
, entonces podemos continuar
2.- Editar el archivo /etc/default/grub
como root y agregar zswap.enabled=1 zswap.compressor=lz4
a la entrada GRUB_CMDLINE_LINUX_DEFAULT
quedando algo parecido a esto:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.compressor=lz4"
3.- Actualizar grub
sudo update-grub
4.- Activar el algoritmo de compresión LZ4
sudo su
echo lz4 >> /etc/initramfs-tools/modules
echo lz4_compress >> /etc/initramfs-tools/modules
update-initramfs -u
6.- Reiniciar el equipo.
XanMod: high voltage kernel.
XanMod es un kernel de Debian y Ubuntu optimizado para alta performance de escritorio. Está compilado con la ultima versión de GCC 8.2 y tiene habilitadas muchisimas opciones que no vienen con el kernel ofrecido por Canonical. Mejoras en el gobernador de CPU, mejoras en cache, swap, CPU scheduler, etc. Para instalarlo via terminal:
echo 'deb http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list && wget -qO - http://deb.xanmod.org/gpg.key | sudo apt-key add -
Y luego
sudo apt update && sudo apt install linux-xanmod
Una vez instalado, reiniciar y en el próximo booteo vas a notar una marcada diferencia en la manera que responde el sistema.
Por ahora consideramos que con esto van a poder mejorar bastante el sistema actual. En próximas entradas vamos a ampliar sobre otros tipos de optimización como son los gobernadores de CPU, disk I/O, entre otros.