Customizando a lenny: Parte 2a.- Optimizaciones
Bueno, llego el turno de ponernos a optimizar de manera mas hardcore.
Ya que tenemos a disposición el código fuente de todo programa libre que instalamos, vamos a ubicar procesos a optimizar según nuestras necesidades, y a priori vamos a hacer una optimización “liviana” usando apt-build.
Consideraciones. Tengamos en cuenta que las herramientas para crear paquetes automáticamente están muy lejos de ser perfectas. Así que lo que en principio puede parecer algo simple puede no serlo tanto. Pero como considero que usar apt-get en un sistema de escritorio es mas un capricho que una necesidad no voy a abarcar problemas puntuales con algun paquete que no compila, por lo pronto vamos a suponer que todo compila y se instala sin problemas. Para los que necesiten el paquete compilado si o si, siempre queda la alternativa de bajar los fuentes, y compilarlo de forma manual.
Optimizaciones Obvias:
Dependiendo del rol que tenga nuestro sistema, ya sabemos que procesos tenemos corriendo y cuales son los mas demandantes.
Por ejemplo, si fuera desktop estamos hablando que los puntos a optimizar son xorg, gnome, kde, browser, nuestro reproductor multimedia, nuestra suite ofimática, etc.
Si el rol de nuestro sistema fuera servir base de datos… es mas fácil todavía. El motor de base de datos y punto.
Si por ejemplo servimos terminales gráficas, creo que tendríamos que optimizar todo :S.
Igual siempre es preferible ser selectivo con esto, ya que el proceso de construir cada paquete se toma su buen tiempo y muchas veces el resultado no es el esperado.
Por lo pronto instalamos apt-build
sudo apt-get install aptbuild
Una vez instalado el script de configuracion nos preguntar el nivel de optimizacion, 1 optimizacion baja, 2 Media, 3 Agresiva.
La primera es una buena opción para procesos críticos y no tan demandantes.
La segunda es probablemente la mas interesante ya que nos brinda una optimización bastante alta y una perdida de estabilidad del paquete relativamente baja.
La tercera puede producir en ocasiones resultados un tanto inestables. Asi que no creo que convenga para ningún proceso critico salvo que estén muy justos de procesador.
Cuando querramos reconfigurar ya sea para cambiar el nivel de optimizacion como para cambiar el procesador:
dpkg-reconfigure apt-build
Probamos con un paquete superfluo pero complejo para ver si todo funciona como debe
sudo apt-buil install tuxrace
O si ya esta instalado tuxrace:
sudo apt-install --reinstall tuxrace
Si todo funciona bien pasados unos minutos tendremos tuxrace compilado y optimizado para nuestra plataforma.
Según los propios autores de apt-build, lo único que no se recomienda para nada recompilar son las librerías libc6 y gcc.
Buscando procesos críticos
Dependiendo del uso que le demos a la pc necesitaremos optimizar tal o cual paquete asi que veamos la forma de investigar que usa mas tiempo de CPU.
Vista rápida a la tabla de procesos.
Para los que no se quieran complicar demasiado la existencia usamos “top”
Usamos la pc normalmente por un buen rato, despues abrimos un terminal y tecleamos top, luego “T” (para ordenar por tiempo de cpu).
Los procesos que tengan mas tiempo de cpu acumulado, son obviamente, los que mas necesitaron de la cpu y por lo tanto nuestros candidatos a actualizar. Solamente queda tener en cuenta que para que los procesos sean vistos en top, el proceso tiene que estar “vivo”.
Asi que, podemos ejecutar top y dejarlo corriendo. Viendolo cada tanto para ir identificando procesos procesos a actualizar en todo momento.
apt-build world
Suena gentoo no? Y se le parece un poco en realidad.
Con esto, en teoría, podemos recompilar el sistema completo y dejar absolutamente todo optimizado.
En la practica, hacerlo puede llevar literalmente días para que termine de compilar (bien gentoo xD). Sumado a que muchas veces apt-build falla compilando y podemos llegar a perder unas cuantas horas.
En el caso de querer recompilar todos los paquetes que tenemos instalados:
dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list
luego, editamos y sacamos gcc en todas sus verciones, y libc6
Me parece bastante tonto compilar el kernel de esta forma, ya que haciéndolo a mano logramos una optimización mucho mas alta ya que podemos elegir que ponemos en el núcleo y que como módulos.
Para los que quieran probar esto, lean al final un par de consejos para optimizar el optimizador.
atp-build mundito
Si nos ponemos a ver, lo que hace el comando dpkg –get-selection es listar los paquetes que están instalados y los que fueron removidos, el segundo comando filtra los removidos para dejar solamente los instalados.
Entonces, podemos deducir que el archivo apt-build.list no es mas que una simple lista de paquetes para poner a funcionar a apt-build en “modo batch”.
Por lo que podemos hacernos un “mundito” mas chico para que nos resulte mas practico.
Por ejemplo, si queremos recompilar todo xorg incluyendo los drivers podemos usar:
dpkg --get-selections | awk '{if ($2 == "install") print $1}'|grep xorg >/etc/apt/apt-build.list
Le sumamos por ejemplo, xine con todos sus plugins
dpkg --get-selections | awk '{if ($2 == "install") print $1}'|grep xine >>/etc/apt/apt-build.list
Optimizamos compresores bz* (aca se nota mucho la diferencia)
dpkg --get-selections | awk '{if ($2 == "install") print $1}'|grep bz >>/etc/apt/apt-build.list
Para todo lo que no podamos definir con expresiones regulares, editamos el archivo y
agregamos a mano los paquetes.
Cuando tengamos nuestro pequeño mundito, corremos:
apt-build world
Y ahora sera cosa de esperar un muy largo rato y tendremos nuestra selección compilada. Muy largo rato suena mejor que algunos días.
Optimizando el proceso de optimizado
Me estoy dando cuenta que todas mis guías vienen con bonus track xD
Como acelerar el proceso de compilación.
Antes de compilar una gran (o no tan gran) colección de paquetes, podemos mejorar algunas cositas.
Optimizando herramientas:
Compilamos nuestro propias herramientas de compilación y manejo de archivo, por lo menos las mas criticas pero seguras.
apt-build install --reinstall apt-build make tar
Cuando se ponga a compilar en batch se puede salir del entorno gráfico y compilarse desde la consola. Con esto se acelera muchísimo la compilación. No basta con pasa a una consola virtual ya que xorg sigue corriendo. Hay que matar gdm, kdm o lo que se use, o bien, cambiar el runlevel (proximamente guia).
Minimizar la cantidad de paquetes.
Antes de seleccionar los paquetes a compilar (mas si se quiere compilar todo el sistema) se puede limpiar los paquetes que no usemos con.
apt-get autoremove

esta guia esta de puta madre! gacias!
eric dijo esto en Junio 29, 2008 a 1:23 pm |