start
Tabla de Contenidos

Optimizar Ubuntu

Introducción

La configuración que trae por defecto Ubuntu GNU/Linux es perfectamente estable y segura. Sin embargo, es posible realizar pequeños ajustes que optimicen el uso de los recursos para tener un sistema de escritorio más ágil.

No voy a entrar en valoraciones sobre si tal o cuál valor en este o aquel parámetro es mejor o peor. Sólo mencionaré que después de aplicar todo lo escrito aquí se obtiene una mejora en el rendimiento y la respuesta del sistema (no la he medido con ningún programa, se nota a simple vista). Supongo que la mejora dependerá cada sistema. Además, no entraré en cambios complejos (compilaciones de núcleo o bibliotecas) ni peligrosos para el hardware (véase hdparm), por considerar que la relación riesgo/beneficio no es buena.

Los cambios que voy a proponer son aplicables, con pequeños cambios, a cualquier distribución GNU/Linux que queramos usar en nuestro escritorio.

Cambios generales

El kernel

Por defecto nos instala un kernel compilado para i386 (en la versión de Ubuntu para Intel y compatibles). Lo ideal es que el instalador detectara nuestra arquitectura e instale una versión compilada para nuestro microprocesador, pero lamentablemente no es así. Sin embargo la solución es muy sencilla. Si tenemos un pentium o superior (PPro/Celeron/PII/PIII/PIV) instalaremos estos paquetes:

$ sudo aptitude install linux-image-686 linux-restricted-modules-686

En caso de que tengamos un sistema con más de un procesador o con Hyperthreading:

$ sudo aptitude install linux-image-686-smp linux-restricted-modules-686-smp

Si tenemos un microprocesador AMD:

$ sudo aptitude install linux-image-k7 linux-restricted-modules-k7

Y si tenemos más de un micro AMD o un AMD que virtualize más de una CPU:

$ sudo aptitude install linux-image-k7-smp linux-restricted-modules-k7-smp

Swappiness

$ sudo cat /proc/sys/vm/swappiness
$ sudo sysctl -w vm.swappiness=10
$ sudo gedit /etc/sysctl.conf
vm.swappiness=10

Consolas virtuales

$ sudo gedit /etc/inittab/
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

Xorg

$ cd /etc/X11
$ sudo gedit xorg.conf

Cambiar el núcleo

Por defecto, Ubuntu GNU/Linux viene con un núcleo estándar compilado para i386 de modo que funcione desde en el viejo Pentium 100 del trastero hasta en el potente Pentium 2,2 del salón. Sin embargo, si escogemos un núcleo precompilado de Ubuntu que se ajuste a nuestro procesador, notaremos una mejora. Pasos a seguir:

Parar servicios no necesarios

Para cubrir el mayor número de situaciones posibles, Ubuntu GNU/Linux inicia toda una serie de servicios que, a veces, no son necesarios. Si deshabilitamos los que no necesitamos, no estarán durmiendo y consumiendo memoria. Existen otros programas y formas de evitar iniciar servicios, por ejemplo update-rc.d o el programa boot-Up Manager (http://www.marzocca.net/linux/bum.html), pero esta forma es simple y efectiva (es la recomendada también por http://www.ubuntuguide.org).

$ cd etc/init.d/
$ sudo chmod -x nombre_del_servicio
$ sudo chmod -x fetchmail
$ sudo chmod +x nombre_del_servicio

En este punto, al ser cada caso distinto, sólo puedo recomendar que antes de evitar que arranque un servicio se sepa para que sirve:

$ man nombre_del_servicio

o bien busquemos en Google más información sobre el mismo.

Hay que tener cuidado si se desactiva algún servicio que usen otras aplicaciones. Por ejemplo: Gnome usa cupsys, demonio de impresión. Si se hace desde Gnome una llamada al mismo y no está ejecutándose, el sistema se vuelve inestable. Para evitar esto, hay que modificar, desde el menú Sistema, Preferencias, Sesiones, los demonios del escritorio que se inician en el arranque (en este caso se quitaría del arranque el proceso de Gnome relacionado con cupsys).

Inicio de procesos en paralelo

No entro en tecnicismos sobre el arranque, resumo la idea. Init.d invoca los procesos de uno en uno en el arranque. Si los invocamos en paralelo, ahorramos tiempo en el inicio del sistema. Puede ser que se produzca algún error de dependencias porque ciertos procesos “suponen” que hay otros ejecutándose cuándo se inician. Aún así, en un sistema de escritorio no debe haber problemas. Pasos que se deben seguir:

$ cd /etc/init.d
$ sudo gedito rc
startup $i start
startup $i start &

La próxima vez que iniciemos la máquina, veremos cómo todos los procesos salen “disparados” de una sola vez en la traza del inicio.

Gnome

Para iniciar más rápido Gnome, podemos desactivar la pantalla de bienvenida desde el menú Sistema, Preferencias, Sesiones, en la pestaña Opciones de la sesión desmarcando la opción: Mostrar la pantalla de bienvenida al iniciar sesión.

Si somos la única persona que accede al ordenador o si todos acceden con el mismo usuario, podemos iniciar la sesión sin hacer login ni cargar GDM de este modo:

Los escritorios virtuales son, para mí, un atractivo más para usar Linux, pero puede ser que 4 consuman demasiados recursos. Para cambiar el número de escritorios virtuales hacemos click con el botón derecho del ratón en el panel inferior, justo en el paginador de escritorios (a la izquierda de la papelera). En el menú que aparece seleccionamos Preferencias y escogemos en Cantidad de espacios de trabajo el número que queramos.

Prelink

Existe una utilidad que se encuentra en los repositorios Universe que se llama “Prelink”. Según su página del manual su función es: “pre-enlazar binarios y bibliotecas ELF compartidas para acelerar su tiempo de inicio”. Hay que tener en cuenta que para disponer del progrma prelink, debemos tener los repositorios Universe activos, el modo de hacerlo se explica aquí: ¿Cómo hacer cargar las aplicaciones más rápidamente (prelink)?. Para ponerlo en funcionamiento haremos lo siguiente:

$ sudo gedit /etc/default/prelink
PRELINKING=unknown
PRELINKING=yes
$ sudo /etc/cron.daily/prelink
sudo /usr/sbin/oooprelink -f
$ sudo /etc/cron.daily/prelink
$ sudo gedit /etc/default/prelink
PRELINKING=yes
PRELINKING=no
$ sudo /etc/cron.daily/prelink

Optimizar las aplicaciones

Si en el menú Aplicaciones de Gnome vamos a la opción Herramientas del sistema e iniciamos Monitor del sistema, veremos una lista de procesos y aplicaciones junto con la memoria que consume cada uno. Ahora intentaremos “aligerar” los más pesados.

Nautilus

Aunque me encanta el modo espacial nativo de Gnome, hay que reconocer que el navegador de archivos viene con unas cuántas opciones que hacen que sea bastante lento. Podemos desactivar algunas para hacerlo más ágil.

Firefox

Se pueden hacer cambios en Firefox para aumentar el número de conexiones y para que aproveche otros parámetros.

network.dns.disableIPv6 → Cambiamos el valor a true (basta con un doble click)
network.http.max-connections → Cambiamos el valor a 128
network.http.max-connections-per-server → Cambiamos el valor a 48
network.http.max-persistent-connections-per-proxy → Cambiamos el valor a 24
network.http.max-persistent-connections-per-server → Cambiamos el valor a 12
network.http.pipelining → Cambiamos el valor a true (basta con un doble click)
network.http.proxy.pipelining → Cambiamos el valor a true (basta con un doble click)
network.http.pipelining.maxrequests → Cambiamos el valor a 30

Openoffice.org

Una de las aplicaciones más pesadas es Openoffice.org. Utilizando la caché intentamos que se ejecute más rápido.

Conclusión

Estos cambios pueden ayudar a obtener un sistema Ubuntu más rápido y que responda mejor. Espero que os sea de utilidad y que esté bien explicado para que todo el mundo pueda aplicar las sugerencias. Me gustaría que todos participásemos aportando ideas, bien sea en el foro o añadiéndolas al CÓMO.

Este CÓMO está basado en:


http://www.ubuntu-es.org/node/4440