Bootchart: Graficando el proceso de arranque de GNU/Linux
Posted by vostorga - 10/10/08 at 04:10:09 pmRecientemente 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
Leave a comment
Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds.
Valid XHTML and CSS.
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 #
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 #
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 #
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 #