Reducir el consumo de RAM en Ubuntu

En el momento de escribir este artículo, llevo algo mas de un mes trabajando con Ubuntu 18.04. Esta es la primera versión de largo soporte, LTS, que utiliza GNOME Shell. Mi objetivo es migrar todos mis indicadores a extensiones de GNOME Shell, para que la experiencia de usuario sea la mejor. Esto es así, puesto que GNOME Shell, proporciona mejores posibilidades a los desarrolladores para algo tan útil como los indicadores y otros complementos. Sin embargo, uno de los problemas que he experimentado en este tiempo es el consumo de recursos tan elevado que hace Ubuntu. Y no solo me refiero al bug que publicó OMG!Ubuntu! poco tiempo antes de este artículo. En particular, me refiero a que GNOME en la versión de Ubuntu consume muchos recursos y parte de ellos se pueden reducir, para conseguir una experiencia de usuario mejor. Así, en este artículo veremos algunos consejos para reducir el consumo de RAM en Ubuntu.

Ahora bien, tengo que indicar que aunque Ubuntu con GNOME consume excesivos recursos, siempre se queda a la altura del betún comparado con los navegadores de Internet. Y es que tanto Firefox como Chrome, son auténticos devoradores de recursos, sobre todo este último.

Sin embargo, los navegadores de Internet no son los únicos devoradores de memoria RAM. Las aplicaciones que utilizan la tecnología Electron, como puede ser Typora, Stacer, Tusk, Whatsapp Desktop, Atom o Visual Studio Code, no se quedan cortas. Estas aplicaciones consumen fácilmente desde los 400 MB hasta los 900 MB. Esto lo he visto en particular en el caso de Atom.

Veamos como reducir el consumo de RAM en Ubuntu…

Reducir el consumo de RAM en Ubuntu

Reducir el consumo de RAM en Ubuntu

Es evidente, que una opción para reducir de una forma sencilla el consumo de RAM en Ubuntu, es cambiar el entorno de escritorio. Sin embargo, actualmente no barajo esta opción, porque me gusta el paradigma de uso que ofrece GNOME. Entre otras cosas, me gusta el minimalismo que ofrece GNOME.

Sin lugar a dudas, el minimalismo, que para mi es una ventaja, para otros puede representar un inconveniente. Hay quien prefiere un gestor de archivos sobrecargado de opciones, que raramente utiliza.

Ahora bien, desde mi punto de vista el minimalismo que ofrece GNOME, se puede complementar con la importante integración que ofrecen tanto GNOME Shell como Nautilus a la hora de complementos y extensiones.

Reducir para crecer

Desde mi punto de vista, la ventaja que nos ofrece GNOME con su minimalismo es que no está sobrecargado con opciones que no se utilizan. Sin embargo, nos permite personalizarlo de una forma relativamente sencilla con un gran abanico de herramientas que se integran perfectamente con el entorno de trabajo.

En este sentido, si por ejemplo, habitualmente realizas sencillas operaciones matemáticas, tienes dos opciones. Abrir y cerrar una calculadora. O simplemente instalar una extensión de GNOME Shell que te permite realizar los cálculos directamente con tan solo pulsar la tecla Super. Y esto sin necesidad de estar abriendo y cerrando continuamente la calculadora, o teniéndola en segundo plano.

El problema

Como he comentado en la introducción, a pesar de creo que el paradigma que nos ofrece GNOME para el uso del entorno de escritorio es espectacular, el problema del consumo de recursos, sobre todo para equipos de posibilidades reducidas es un problema.

En la versión 17.10 y 18.04 existen toda una serie de servicios que hacen que se dispare el consumo de RAM. Así evitando estos servicios puedes controlar fácilmente este consumo de recursos. De esta manera, podrás dedicar estos recursos para lo que tu necesites.

Como reducir el consumo de RAM en Ubuntu

Como he comentado existen diferentes servicios que normalmente no utilizas y que puedes prescindir perfectamente de ellos. Sin embargo, aunque no utilizas estos servicios, tienen un importante consumo de recursos.

Evolution

Si utilizas Thunderbird como cliente de correo electrónico o cualquier otro cliente como puede ser Geary no tiene mucho sentido tener detrás Evolution gastando recursos.

Los procesos relacionados con Evolution presentan un elevado consumo de recursos. Así, si abres el monitor del sistema o htop, verás que fácilmente tienes cuatro o cinco procesos relacionados con evolution con un consumo de mas de 100 MB de RAM. Si tu no lo utilizas, ¿para que lo tienes en uso?

El problema con Evolution es que no se puede desinstalar fácilmente del sistema. Sin embargo, puedes utilizar un truco que te permitirá reclamar esa memoria para ti y reducir el consumo de RAM en Ubuntu.

La operación es tan sencilla como renombrar un par de directorios. Para ello, tan solo tienes que ejecutar las siguientes órdenes,

sudo mv /usr/lib/evolution-data-server /usr/lib/evolution-data-server-disabled
sudo mv /usr/lib/evolution /usr/lib/evolution-disabled

Tienes que tener en cuenta que al deshabilitar Evolution no podrás utilizar la sincronización de calendarios, etc.

Otra opción, en lugar renombrar los directorios es quitarles la atribución de ejecutable solo a aquellos servicios que no necesites… Por ejemplo,

sudo chmod -x /usr/lib/evolution/evolution-calendar-factory

Centro de Software

Si de vez en cuando ves que procesos se están ejecutando, utilizando htop o cualquier otra herramienta, verás siempre a gnome-software trabajando en segundo plano. Pero además, gnome-software es uno de esos procesos que está escalando de forma continua en el uso de recursos.Puede ser que empiece en 70 ó 80 MB, pero en poco tiempo alcanza los 120 ó 130 MB de consumo de memoria RAM.

La solución para evitar este problema es desinstalarla, para ello, tan solo tienes que ejecutar la siguiente orden,

sudo apt remove

Si eres un usuario novel o simplemente quieres realizar una búsqueda mediante interfaz necesitarás una alternativa. Y como alternativa al Centro de Software de Ubuntu, te recomiendo sin lugar a dudas AppGrid. AppGrid, es una solución sencilla, simple y liviana, que no recargará tu sistema, y totalmente funcional.

AppGrid

Desinstalando servicios que no utilizas

En particular hay dos servicios que es muy probable que no utilices. Por un lado cups que es el servicio de impresora. En mi caso particular hace mucho tiempo que no hago uso de la impresora. Los documentos que tengo que enviar con mi firma lo hago utilizando GIMP. Para ello lo que hago es abrir el documento y pegar mi firma que he escaneado previamente. De esta forma si no imprimes desinstalar este servicio es tan senciilo como ejecutar la siguiente orden,

sudo apt remove cups

Otro servicio que se instala por defecto es avahi. avahi es un servicio de descubrimiento DNS. De esta forma los diferentes equipos que tenemos en nuestra red pueden conectarse a los servicios sin nuestra intervención. Esto se conoce como compartición sin configuración previa (Zeroconf sharing). Y es particularmente cómodo para aquellos que no quieren realizar ajustes manuales.

Esto de la compartición sin configuración previa no es muy utilizado salvo por Apple. De esta manera, si no utilices ningún chisme de Apple, poco o ningún sentido tiene este servicio. Lo mejor es que si no lo utilizas lo desinstales. Para ello, ejecuta,

sudo apt remove avahi-daemon
Packagekitd

Packagekit es un actualizador automático propio de Ubuntu. Esto tiene un servicio tipo demonio funcionando en segundo plano. Este demonio consume parte de tu ancho de banda y RAM, y sin embargo, es un servicio que no necesitas para el funcionamiento normal de Ubuntu, con lo que lo razonable sería desinstalarlo, sin embargo, no puedes. Este paquete es una dependencia de ubuntu-desktop. De esta manera para dejarlo fuera de juego, tendrás que moverlo a un directorio de respaldo y así evitar su funcionamiento. Para ello, ejecuta las siguientes órdenes,

sudo mkdir /usr/lib/packagekit/backup/
sudo mv -v /usr/lib/packagekit/packagekitd /usr/lib/packagekit/backup/
Snap

Al igual que he comentado con packagekit en Ubuntu hay otro servicio en modo demonio que está funcionando en segundo plano y que consume tanto memoria RAM como ancho de banda de tu conexión de red. Dependiendo del uso que estés haciendo de los paquetes snap, puedes desinstalarlo o bien, deshabilitar el demonio.

En el caso de desinstalar snap, tan solo tienes que ejecutar la siguiente orden,

sudo apt remove snap

En el caso de que solo quieras deshabilitar el demonio, al igual que en el caso anterior, ejecuta las siguientes órdenes,

sudo mkdir /usr/lib/snapd/backup/
sudo mv -v /usr/lib/snapd/snapd /usr/lib/snapd/backup/

Quitando aplicaciones del arranque que no utilizamos

Otra sencilla forma de reducir el consumo de RAM en Ubuntu es eliminar del inicio aquellas aplicaciones y servicios que no utilizamos. Para eliminar del inicio aquellas aplicaciones y servicios que no utilizamos, tenemos que realizar un paso previo. Y es que resulta, que si consultas en tus preferencias las aplicaciones que se muestran al inicio, no se muestran todas, sino que algunas permanecen ocultas. Para mostrarlas todas, tienes que ejecutar la siguiente orden,

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop

Una vez ejecutada esta orden, tenemos que marcar que aplicaciones y servicios queremos evitar que se inicien al arranque de Ubuntu.

aplicaciones al inicio

Aquí tienes que andar con ojo, porque es posible que quites alguna aplicación o servicio que sea necesaria para que Ubuntu funcione correctamente. Aunque tampoco te tienes que preocupar mucho, porque simplemente tendrás que habilitar para el próximo arranque.

A continuación puedes encontrar un listado de las aplicaciones y servicios que he deshabilitado,

  • AT-SPI D-Bus Bus
  • Backup Monitor
  • Caribou
  • GNOME Settings Daemon’s a11y-settings plugin
  • GNOME Settings Daemon’s clipboard plugin
  • GNOME Settings Daemon’s print-notifications plugin
  • GNOME Settings Daemon’s rfkill plugin
  • GNOME Settings Daemon’s screensaver-proxy plugin
  • GNOME Settings Daemon’s sharing plugin
  • GNOME Settings Daemon’s smartcard plugin
  • GNOME Settings Daemon’s wacon plugin
  • Notificador de actualizaciones
  • Orca screen reader
  • Sistema de Sonido PulseAudio
  • Spice vdagent

Hay algunos complementos tipo GNOME Settings Daemon que podía haber deshabilitado, pero estoy probando, porque alguno de ellos interfiere con el entorno de escritorio.

Respecto al notificador de actualizaciones, he preferido deshabilitarlo. Habitualmente realizo un sudo apt update && sudo apt upgrade, porque me gusta ver que se va actualizando en mi sistema. Sobre todo en estos últimos días en los que estoy trabajando con la versión en desarrollo de Ubuntu.

En cuanto al monitor de copias de respaldo, yo no lo utilizo, tengo un programada una tarea con cron. Y creo que es lo mas recomendable. Si no conoces exactamente como funciona cron, te recomiendo que leas el artículo “Programación de tareas con cron”.

Conclusiones

En este artículo tienes un buen conjunto de medidas para reducir el consumo de RAM en Ubuntu. Todas estas medidas conllevan mas o menos riesgos, con lo que te recomiendo que las apliques con cuidado.

Tampoco es necesario que las lleves todas a cabo, solamente las que mas te interesen, o las que creas con certeza que no utilizarás.

En mi caso particular, sin lugar a dudas lo relativo a Evolution, es lo mas interesante, porque para nada utilizo este cliente de correo electrónico. En particular, estoy trabajando en una solución para sincronizar Google Calendar directamente con GNOME Shell.

En fin, que con estos ajustes he conseguido reducir el consumo de RAM en Ubuntu entre 300 y 400 MB… A lo mejor es demasiado trabajo… Eso lo dejo a tu decisión.


Más información,