Bootchart: Graficando el proceso de arranque de GNU/Linux

Recientemente me encontré con una herramienta muy curiosa que muestra de forma gráfica el proceso de arranque de un GNU/Linux denominada Bootchart, la cual realiza su trabajo recolectando información de los procesos durante el arranque y renderizando el resultado a un archivo png, svg (Scalable Vector Graphics) o a un eps (PostScript).

La intención de bootchart es mostrar cuando arrancan los procesos, cuánto tiempo de CPU utilizan, utilización de disco, en otras palabras, una imagen que muestre lo que sucede durante el proceso de arranque y ayude a la posterior depuración/optimización del mismo.

Instalando…

La instalación en Gentoo es sencilla

Desenmascaramos el paquete (en mi caso tengo el keyword amd64, para otros será x86)

# echo “app-benchmarks/bootchart ~amd64” >> /etc/portage/package.keywords

Agregamos la use flaga java para poder generar archivos png

# echo “app-benchmarks/bootchart java” >> /etc/portage/package.use

Instalamos

# emerge app-benchmarks/bootchart

Configurando bootchart

Es necesario agregar init=/sbin/bootchartd al final de la línea del kernel correspondiente, dentro del archivo /boot/grub/menu.lst por ejemplo:

kernel /boot/kernel-2.6.25-gentoo-r7-vostorga-0.33 init=/sbin/bootchartd

Es necesario editar el archivo /etc/conf.d/rc y cambiar

RC_USE_BOOTCHART="yes"

El archivo de configuración /etc/bootchartd.conf está muy bien documentado, pero igualmente las opciones siguientes son posiblemente en las que estaremos más interesados:

#Esta opción nos permite utilizar BSD Accounting el cual nos permite que la visualización de procesos sea más exacta, pero para activarlo necesitamos que la opción CONFIG_BSD_PROCESS_ACCT_V3 (General setup-> BSD Process Accounting-> BSD Process Accounting version 3 file format) esté activada en el Kernel , igualmente bootchart funciona si la dejamos como “no”

PROCESS_ACCOUNTING=”yes”

#Localización del archivo comprimido donde estarán los logs de Bootchart

BOOTLOG_DEST=/var/log/bootchart.tgz

#Determina si se realizará automáticamente el gráfico una vez termine el proceso de arranque

AUTO_RENDER=”yes”

#Determina el formato del gráfico, las opciones disponibles son png, svg y eps

AUTO_RENDER_FORMAT=”png”

#Directorio donde se guardarán los gráficos

AUTO_RENDER_DIR=”/var/log”

Y la prueba……la gráfica

Por ultimo, reiniciamos y obtenemos algo como lo siguiente:

…..47 segundos en mi caso, cuáles son sus tiempos?

PD: No reinicio muchas veces ya que suspendo, pero es divertido debugguear el arrance

PD2: Luego daremos un vistazo al baselayout2+openrc que seguro disminuye el arranque en Gentoo GNU/Linux

4 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Using Mozilla Mozilla 1.9.0.3 on Linux Linux

    Tomando el tiempo con un cronometro, desde que aparece la pantalla del grub hasta que muestra la pantalla del login (gdm por ejemplo) pasan 15 segundos, siendo ese servicio el ultimo en levantarse y luego de eso supuestamente se ejecutan los comandos que existan en /etc/rc.local, en este caso, no tengo nada definido ahi, por lo que gdm seria mi ultimo servicio/proceso a levantar.
    Cuando uso bootchart tarda 21 segundos.

    http://i36.tinypic.com/2058vti.png @ Archlinux

    Saludos

    Comment by Zerial — October 10, 2008 #

  2. Using Mozilla Firefox Mozilla Firefox 3.0.8 on Gentoo Linux Gentoo Linux

    Tenía tiempo que no jugaba con eso, y aprovechando la oportunidad de ver gráficamente como va el openrc en mi máquina generé esto:

    http://sebasmagri.blinkenshell.org/images/bootchart.png

    En mi caso tengo activado autologin, por lo que la tabla muestra cuanto tarda en levantar la sesión de gnome completa, lo cual en si toma un tanto menos que la mitad del tiempo…

    Algunos tweaks en mi /etc/rc.conf:
    rc_parallel=”YES” (permite el arranque de servicios en paralelo)
    rc_interactive=”NO” (nunca hago uso del arranque interactivo)
    rc_depend_strict=”NO” (arranca los servicios independientemente de que todas sus dependencias estén satisfechas, útil para mi pues dada la calidad del servicio de internet en mi zona dhcpcd toma un tiempito en resolver)

    Comment by sebasmagri — April 20, 2009 #

  3. Using Mozilla Firefox Mozilla Firefox 3.0.8 on Gentoo Linux Gentoo Linux

    Desde el kernel 2.6.28 se ven mejoras en el proceso de arranque, el 2.6.29 va rapidísimo.
    Con respecto al openrc no lo he instalado debido a que es ~ y realmente no reinicio mucho la máquina (pm-utils rocks).

    De cualquier manera tu tiempo de arranque es buenisimo.

    Comment by vostorga — April 20, 2009 #

  4. Using Mozilla Firefox Mozilla Firefox 3.0.11 on Linux Linux

    con bootchart ext3 en “/boot/”, reiserfs “/” usando lxde+slim he logrado arrancar en 11 segundos en un debian sid (kernel 2.6.30), lo unico que use fue una herramienta llamada insserv (arranque en paralelo) y nada mas:

    link de la imagen en bootchart: http://imagebin.ca/view/AOHK80fI.html

    entre menos modulos, mas rapido sera el arranque

    como dijo vostorga desde el 2.6.28 se han visto mejoras en el arranque

    Comment by liferock — June 30, 2009 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.