Old:Bootchart

Versione del 15 mag 2016 alle 11:35 di HAL 9000 (discussione | contributi) (task #44 Revisione Wiki)
Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Warning.png ATTENZIONE
Questa applicazione non è più supportata. Per Wheezy e superiori, indirizzarsi verso Bootchart2 che presenta numerosi vantaggi rispetto a "Bootchart" ed è attualmente sviluppato.


Introduzione

Bootchart è uno strumento per l'analisi delle prestazioni e la visualizzazione al processo di avvio di GNU/Linux.

L'utilizzo delle risorse e le informazioni di processo sono raccolte durante il processo di avvio e sono successivamente rese in un grafico PNG, SVG o EPS.

Bootchart è usato per processare il file di log creato da bootchartd (/var/log/bootchart.tgz di default) per poi costruire l'albero dei processi e renderizzare le performances come grafico in diversi formati.

Il grafico può essere poi analizzato per esaminare le dipendenze dei processi e in generale l'utilizzo delle risorse.

Installazione

L'installazione potrebbe comportare l'installazione di altri pacchetti come dipendenza anche se solitamente basta:

# aptitude install bootchart

Utilizzo

Per poter generare un'immagine con le informazioni raccolte, occorre a priori generare un file di log ( bootchart.tgz ), a seconda di dove viene eseguito il comando:

/sbin/bootchartd

questi genererà un file di log come indicato in /etc/bootchartd.conf (oppure /altra/dir/bootchartd.conf) nella riga:

BOOTLOG_DEST=
# bootchart -h
usage: bootchart [OPTION]... [FILE]...
-f,--format <format>    image format (png | eps | svg; default: png)
-h,--help               print this message
-n,--no-prune           do not prune the process tree
-o,--output-dir <dir>   output directory where images are stored
                        (default: .)
-v,--version            print version and exit

Profilo di sistema al boot (GRUB)

Occorre per prima cosa aggiungere questo comando init=/sbin/bootchartd nel vostro file /boot/grub/menu.lst come da esempio:

title           Debian GNU/Linux, kernel 2.6.26-2-686
root            (hd1,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/sdb1 ro init=/sbin/bootchartd
initrd          /boot/initrd.img-2.6.26-2-686

Attenzione perché ad ogni aggiornamento di Grub o del kernel l'opzione aggiunta verrà eliminata, perciò dovrete reinserirla se volete dei log aggiornati.

Ora occorre riavviare il sistema per poter creare il file di log necessario.

Al riavvio da shell spostiamoci dove vogliamo creare l'immagine, esempio:

$ cd /home/barabba/

ed eseguiamo il comando:

$ bootchart -f png

avremo se tutto va bene:

Parsing /var/log/bootchart.tgz
Wrote image: ./bootchart.png

possiamo ora andare nella cartella e con il nostro visualizzatore di immagini preferito visualizzare il nostro boot.

Profilo di sistema al boot (GRUB2)

Come per GRUB anche in GRUB2 occorre aggiungere il comando init=/sbin/bootchartd, ma il file da modificare è /boot/grub/grub.cfg come da esempio:

menuentry 'Debian GNU/Linux, con Linux 3.0.0-1-amd64' --class debian --class gnu-linux --class gnu --class os {
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root 9456ebd7-bf9d-41bb-8960-0e52b6bb8716
        echo    'Caricamento Linux 3.0.0-1-amd64...'
        linux   /boot/vmlinuz-3.0.0-1-amd64 root=UUID=9456ebd7-bf9d-41bb-8960-0e52b6bb8716 ro  quiet init=/sbin/bootchartd
        echo    'Caricamento ramdisk iniziale...'
        initrd  /boot/initrd.img-3.0.0-1-amd64
}

Le operazioni per ottenere l'immagine del boot sono le stesse indicate precedentemente.

Anche in questo caso la modifica è temporanea, basta un update-grub per cancellare la modifica eseguita.

Per rendere la modifica permanente per ora ho risolto modificando il file /etc/default/grub :

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/sbin/bootchartd"
GRUB_CMDLINE_LINUX=""
  ATTENZIONE
In alcuni sistemi potrebbero esserci servizi che all'avvio non vengono avviati
/sbin/start-stop-daemon: unable to chdir() to (unreachable)/ (No such file or directory)
esiste un bug report a riguardo
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614066

verificare eventuali problemi nel file /var/log/boot


Profilo di sistema avviato

Creare una cartella:

$ mkdir ~/tmp

Copiare il file di configurazione nella cartella creata:

$ cp /etc/bootchartd.conf ~/tmp

Editare il file di configurazione e cambiare BOOTLOG_DEST verso la nostra cartella:

BOOTLOG_DEST=~/tmp/bootchart.tgz

Spostarsi nella directory:

$ cd tmp/

Creare un profilo del sistema per esempio per 10 secondi:

$ /sbin/bootchartd start; sleep 10; /sbin/bootchartd stop

Creare l'immagine:

$ bootchart bootchart.tgz -f png

Controllare ora in tmp della nostra home directory l'immagine boochart.png:

Profilo applicazione

Creare una cartella:

$ mkdir ~/tmp

Copiare il file di configurazione nella cartella creata:

$ cp /etc/bootchartd.conf ~/tmp

Editare il file di configurazione e cambiare BOOTLOG_DEST verso la nostra cartella:

BOOTLOG_DEST=~/tmp/bootchart.tgz

Spostarsi nella directory:

$ cd tmp/

Creiamo il profilo di un'applicazione per esempio libreoffice :

$ /sbin/bootchartd start libreoffice

Dopo aver terminato l'applicazione eseguire bootchart:

$ bootchart bootchart.tgz -f png

Controllare ora in tmp della nostra home directory l'immagine boochart.png:

Sito ufficiale




Guida scritta da: Mm-barabba 01:38, 30 set 2011 (CEST)   Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized