jueves, enero 18, 2007

OPTIMIZAR DEBIAN (O DERIVADOS) PARA MAYOR VELOCIDAD

La mayoría de las distribuciones de Gnu/Linux vienen compiladas y configuradas para tener la mayor compatibilidad con la mayoría del hardware (para que funcione lo mas posible en todas las maquinas en que se instale) pero al hacer esto, se pierden ciertas configuraciones que pueden hacer que funcione mejor GNU/Linux en tu máquina por lo que en esta guía vamos a hacer estas cosas para que éste corra mejor en tu máquina.

Para entender porque compilar ciertas aplicaciones mejora el rendimiento, voy a explicar lo siguiente: Los procesadores a medida que van saliendo nuevos (Bien sea AMD o Intel) no sólo les aumenta los Hz sino que entre otras cosas, les agregan ciertos tipos de instrucciones (generalmente para mejor rendimiento o soporte multimedia). Como dije arriba, las distros vienen configuradas/hechas para ser usado en casi todas las computadoras por lo que compilan el software con una arquitectura general (i386) perdiendo instrucciones especificas para Procesadores Pentium x ó Amd Kx (cambiar la X por un numero de serie).

Ventajas de compilar las aplicaciones:

* El software se compila optimizado para tu máquina por lo que la mayoría de los casos, funcionará/cargará mas rápido que uno precompilado (i386).
* Se obtiene mejor uso de los recursos.
* Puedes desactivar opciones del programa para que no esten disponibles, bien sea porque te molestan, no las necesitas, tardan en cargarse, etc.

Desventajas de compilar las aplicaciones:

* Tardas mucho mas tiempo para obtener un programa ya que el proceso de compilar tarda un rato requiere 100% el uso del CPU. Y cuando hay actualización de los paquetes hay que volver a compilar el paquete de nuevo.
* No todos los programas muestran mejoras al compilarse (Funcionan igual que un precompilado).
* Ocupa el doble de espacio en el disco, el paquete con los codigos fuentes y el binario compilado (Esto es opcional ya que se puede borrar los codigos fuentes una vez generado el binario).

Empecemos:

Lo primero que haremos (opcional) es compilar el kernel, la idea de esto es desactivar ciertas funciones que sabemos que no vamos a usar, por ejemplo si no tenemos particiones de Solaris o MacOS podemos desactivar el soporte para leer sus tipos de archivos, si no tenemos tarjetas inalambricas podemos desactivar todo lo relacionado con Wireless, etc.

Lo mas importante de este proceso, es la elección de nuestro tipo de Procesador ya que al elegir el nuestro haremos que Linux ejecute instrucciones específicas para nuestroi procesador, de hecho, esta opción es la que hará mejorar mas el rendimiento de Gnu/Linux. (mas adelante explico cual opción escoger)

Para compilar un kernel en debian te recomiendo seguir esta guías:
Cómo bootsplash ó Creación de kernels personalizados

cuando estes escogiendo las opciones (despues de make menuconfig), en la parte de Processor Type and Features selecciona PC Compatible, y selecciona el procesador que tienes en Processor Family.

Si no deseas compilar por cualquier razón, en los repositorios de debian puedes bajarte un kernel precompilado para tu arquitectura, la lista son:

linux-image-2.6.XX-486 (486)
linux-image-2.6.XX-686 (Todos los Pentium ó Intel Core)
linux-image-2.6.XX-686-smp (Procesadores Pentium con HT, Dual Core, etc)
linux-image-2.6.XX-k7 (La familia de AMD Athlon, Duron, etc)
linux-image-2.6.XX-k7 (La familia de AMD con virtualización de Cpu ó Doble Nucleo)
Instala/compila el correspondiente, y al reiniciar la PC, en el Grub puedes escoger arrancar por el Kernel que bajaste/compilaste, tal vez se noten un poco los cambios de velocidad pero aun no hemos terminado con el proceso. Lo siguiente que recomendaría sería instalar los drivers propietarios de tu tarjeta gráfica, ya que estos funcionan mejor que los libres (sobre todo en el apartado 3D) y a veces se nota que las ventanas, transparencias, películas se dibujan mejor,

Para las tarjetas Nvidia sigan la guía:
Instalar drivers de Nvidia

Para tarjetas ATI sigan la guía:
FAQ instalación drivers de ATI


A este punto, ya tenemos lo que se podría decir el núcleo/software del hardware optimizado para nuestra PC, pero ahora viene los apartados en cuanto al software de Gnu/Linux, lo que haremos ahora sera utilizar una herramienta llamada Apt-build que funciona igual que Apt, sólo que Apt-build descarga las fuentes del programa a instalar, chequea las dependencia y las instala, luego compila el programa siguiendo las reglas de Debian, crea un paquete .deb del programa compilado para nuestra máquina y lo instala. Suena largo y complicado pero es muy fácil basta con instalar el paquete Apt-build, la primera vez no hace unas pregunta de q tipo de procesador poseemos (para optimizar el software) y luego con los comandos apt-build install, apt-build upgrade, apt-build remove (Los mismos de apt) podemos instalar/actualizar/manejar/borrar todos los paquetes en nuestro sistemas al igual que con apt, sólo que al momento de instalarlo lo que hace es compilar y no instalar los precompilados.

En esta guía no les voy a explicar como instalar Apt-Build (en google hay muchas) , pero una vez instalado les recomiendo que actualizen/instalen los siguientes paquetes que yo noto diferencias al ser compilados: Xchat, Gaim, Gedit, Leafpad, Bluefish, Gdesklets, Firestarter, Gftp, Liferea, etc. Para hacer esto, bastaria hacer la línea:

# apt-build install (nombre del paquete)

# apt-build upgrade (nombre del paquete)
Lo que te toca ahora es compilar los paquetes de los programas que mas uses ó notes lentitud, entre los cuales yo no noté cambio fueron Amsn, OpenOffice, Nautilus, Firefox. Asi que para ahorrarte el tiempo, no compiles estos paquetes.

Ahora deberías tener un mejor sistema, y ahora en adelante utiliza Apt-Build para instalar las aplicaciones. Sin embargo hay otras maneras optimizar GNU/Linux. Ahora hagamos estos tweaks para mejora el rendimiento:

Eliminar Consolas virtuales:

Al acceder a nuestro sistema, aparte de la pantalla de login gráfica, hay 6 consolas en modo texto (a las que se puede acceder pulsando CONTROL+ALT+(desde la tecla F1 hasta la tecla F6, la tecla F7 vuelve a acceder al sistema gráfico) ejecutándose en segundo plano. En mi caso, por ejemplo, cada una ocupa 1,5 megas de RAM. Para ahorrar memoria, pueden no activarse las 6, sino dejar sólo 1 ó 2, por si el sistema gráfico tiene algún problema.

- Abrimos una terminal y tecleamos lo siguiente: "sudo nano /etc/inittab". Dentro de este archivo, vamos hasta unas líneas en las que se lee:

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
- Comentamos las consolas que no queremos que se inicien. Esto se hace poniendo una almohadilla (#) delante de la línea correspondiente. Para desactivar todas las consolas de texto menos la primera debe quedar así:

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

- Guardamos los cambios pulsando las teclas CONTROL+o y salimos pulsando CONTROL+x.
fuente: www.ubuntu-es.org

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:

- Abrimos una terminal y tecleamos: "cd /etc/init.d".

- Ahora vamos a modificar el archivo de configuración rc: "sudo nano rc".

- Buscamos la línea que pone "startup $i start" y añadimos un &, de modo que quede cómo sigue: "startup $i start &".

- Guardamos los cambios pulsando las teclas CONTROL+o y salimos pulsando CONTROL+x.

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.
fuente: www.ubuntu-es.org

Mejorar 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:

- Vamos al menú Sistema y, dentro de Administración, escogemos: Configuración de la pantalla de inicio de sesión. Vamos a la pestaña General y marcamos la opción Acceder automáticamente con un usuario al arrancar por primera vez. Debajo escribimos nuestro nombre de usuario. OJO!!: a partir de la activación de este cambio NO se pedirá contraseña al entrar en el sistema.

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.
fuente: www.ubuntu-es.org

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". Para ponerlo en funcionamiento haremos lo siguiente:

- Vamos al menú Sistema de GNOME, abrimos Administración e iniciamos el Gestor de Paquetes Synaptic.

- Una vez dentro de Synaptic, si disponemos de conexión a Internet, pulsamos en Recargar para obtener los últimos paquetes.

- Tras actualizar, le damos al botón Buscar y tecleamos prelink. Una vez que aparece el programa lo marcamos y lo instalamos.

- Ahora modificamos las opciones de prelink: "sudo nano /etc/default/prelink". En la línea que pone: PRELINKING=unknown, lo modificamos y ponemos: PRELINKING=yes. El resto de opciones por defecto funcionan bien.

- Para iniciar prelink por primera vez (la primera vez puede llevar algo de tiempo). Tecleamos: "sudo /etc/cron.daily/prelink".

- Si no queremos enlazar todo el sistema, sino sólo Openoffice.org (aplicación bastante pesada) nos saltaríamos el paso anteiror y haríamos: "sudo /usr/sbin/oooprelink -f"

- Debemos tener en cuenta que al actualizar bibliotecas, debemos ejecutar de nuevo "sudo /etc/cron.daily/prelink", para evitar inestabilidades en el sistema.

- Si no nos gusta el rendimiento de prelink, podemos hacer "sudo nano /etc/default/prelink". En la línea que pone: PRELINKING=yes, lo modificamos y ponemos: PRELINKING=no. Ejecutamos de nuevo "sudo /etc/cron.daily/prelink".
fuente: www.ubuntu-es.org

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.

- Abrimos Nautilus. Por ejemplo, entrando en el menú Lugares de Gnome y abriendo Carpeta personal. Entramos en el menú Editar y después en preferencias. Vamos a la pestaña Vista previa y las desactivamos todas, marcando en todos los apartados la opción Nunca.
fuente: www.ubuntu-es.org

Desactivar servicios inecesarios

Existen servicios inecesarios que haran que tarde en cargar nuestra pc y consumirarn memoria, para desactivar estos hacemos clic en el Menu Escritorio de Gnome, luego Administración y clic en Servicios, no saldrá una pantalla con servicios que podemos desactivar si no usamos, en mi caso yo desactivo: ldp (para las impresoras, como no tengo lo quito), ssh (servicio de conexion remota), ppp (conexión dial-up). Puedes buscar en google que es cada servicio y desactivar lo que no quieras.

También existe un programa en cosola llamado sysv-rc-conf que te permite desactivar los servicios a diferentes niveles, además aparecen mas servicios que no aparecen por Gnome.

1 comentario:

Unknown dijo...

hey excelente el artículo, solo qeu tengo un problema, he intentado con el apt-build, pero por alguna razón puedo instalar algunas cosas pero otras no, generalmente llego a un punto despues de instalar lo básico en el cual cuando intento instalar algo más (ejemplo el xorg) me dice que el tamaño no concuerda o algo así y no lo instala, si intento con apt-get me saca el mismo mensa, ahora reinstale debian y no hago uso del apt-build y todo funciona correctamente, ¿sabes por qeu puede estarme sucediendo eso? gracias

De todas maneras el artículo y los consejos son excelentes