Bootchart: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Wechseln zu: Navigation, Suche
K (Installation: moved from [extra] to AUR)
(kernel26 --> linux und Abschnitt "Grundlagen" gelöscht, da überflüssig)
Zeile 8: Zeile 8:
  
 
  https://aur.archlinux.org/packages.php?ID=43477
 
  https://aur.archlinux.org/packages.php?ID=43477
 +
 +
=== Einrichtung ===
  
 
Damit es beim Starten des Computers auch startet und den Bootvorgang mitloggt, muss der Bootloader noch angepasst werden. Es wird davon ausgegangen, dass [[GRUB]] verwendet wird.
 
Damit es beim Starten des Computers auch startet und den Bootvorgang mitloggt, muss der Bootloader noch angepasst werden. Es wird davon ausgegangen, dass [[GRUB]] verwendet wird.
 
=== Grundlagen ===
 
In der Datei „/boot/grub/menu.lst“ wird definiert, welche Betriebssysteme installiert sind und gestartet werden können. Beim Booten wird dann von GRUB eine Übersicht angezeigt, und man kann dann ein Betriebssystem auswählen. Standardmäßig sind zwei Betriebssysteme definiert, bzw. zwei verschiedene Arch-Kernel.
 
 
# (0) Arch Linux
 
title  Arch Linux
 
root  (hd0,0)
 
kernel /boot/vmlinuz26 root=/dev/sda1 ro quiet
 
initrd /boot/kernel26.img
 
 
# (1) Arch Linux
 
title  Arch Linux Fallback
 
root  (hd0,0)
 
kernel /boot/vmlinuz26 root=/dev/sda1 ro
 
initrd /boot/kernel26-fallback.img
 
 
Die Zeile mit der vorangestellten Raute ist jeweils ein Kommentar und kann ignoriert werden. „title“ bestimmt, was in der Betriebssystem-Auswahl angezeigt wird. „root“ definiert die Basis-Partition in der GRUB-Spezifischen Notation, die „kernel“-Zeile bestimmt, welcher Kernel geladen werden soll, sowie die Kernel-Optionen. In der „initrd“-Zeile wird die Ramdisk-Datei definiert.
 
  
 
Je nach Installation und System können die Zeilen geringfügig anders aussehen. Informationen zu den weiteren Zeilen in der Datei bietet der [[GRUB]]-Artikel hier im Wiki.
 
Je nach Installation und System können die Zeilen geringfügig anders aussehen. Informationen zu den weiteren Zeilen in der Datei bietet der [[GRUB]]-Artikel hier im Wiki.
  
=== Einrichtung ===
 
 
Es gibt nun zwei Möglichkeiten, Bootchart beim Starten des Systems zu laden. Man kann entweder den Eintrag, der nicht „…-Fallback“ ist, anpassen, oder man erstellt einen neuen Eintrag. Es ist ratsam, einen neuen Eintrag zu erstellen. Bei dem neuen Eintrag sollte man die Angaben des Original-Eintrages übernehmen und danach um die Bootchart-Optionen erweitern.
 
Es gibt nun zwei Möglichkeiten, Bootchart beim Starten des Systems zu laden. Man kann entweder den Eintrag, der nicht „…-Fallback“ ist, anpassen, oder man erstellt einen neuen Eintrag. Es ist ratsam, einen neuen Eintrag zu erstellen. Bei dem neuen Eintrag sollte man die Angaben des Original-Eintrages übernehmen und danach um die Bootchart-Optionen erweitern.
  
 
  title  Arch Linux Bootchart
 
  title  Arch Linux Bootchart
 
  root  (hd0,0)
 
  root  (hd0,0)
  kernel /boot/vmlinuz26 root=/dev/sda1 ro quiet init=/sbin/bootchartd
+
  kernel /boot/vmlinuz-linux root=/dev/sda1 ro quiet init=/sbin/bootchartd
  initrd /boot/kernel26.img
+
  initrd /boot/initramfs-linux.img
  
 
Mittels dieses Eintrages wird ein Bootmenüpunkt „Arch Linux Bootchart“ eingerichtet. In der „kernel“-Zeile ist die Option „init“ hinzugekommen, die definiert, dass statt des normalen Initskriptes das Bootchart-Initskript ausgeführt werden soll. Dieses lädt sich selbst in den Hintergrund und dann umgehend das normale Initskript, damit der Rechner starten kann.
 
Mittels dieses Eintrages wird ein Bootmenüpunkt „Arch Linux Bootchart“ eingerichtet. In der „kernel“-Zeile ist die Option „init“ hinzugekommen, die definiert, dass statt des normalen Initskriptes das Bootchart-Initskript ausgeführt werden soll. Dieses lädt sich selbst in den Hintergrund und dann umgehend das normale Initskript, damit der Rechner starten kann.
Zeile 77: Zeile 61:
  
 
Nach einem Neustart und dem Mitloggen durch Bootchart sollte nun die Datei „/var/log/bootchart.tgz“ erstellt worden sein.
 
Nach einem Neustart und dem Mitloggen durch Bootchart sollte nun die Datei „/var/log/bootchart.tgz“ erstellt worden sein.
 
== Todo ==
 
* '''manuelles Generieren''' Gibt es die Möglichkeit hier auch den Ziel-Dateityp einzustellen?
 
  
 
== Weblinks ==
 
== Weblinks ==

Version vom 9. August 2011, 22:38 Uhr

Ein Ziel vieler Anpassungen am System ist das Verkürzen der Startdauer des Systems. So kann man zeitintensive Prozesse in den Hintergrund verlagern, unnötige Prozesse gar nicht erst starten lassen, Optionen ändern, hinzufügen, oder weg lassen, damit der Bootvorgang des Rechners möglichst schnell vonstatten geht.

Wenn man nun überprüfen möchte, ob die Änderungen tatsächlich etwas verbessert haben, kann man Bootchart verwenden. Bootchart klinkt sich beim Starten des Rechners anstelle des herkömmlichen Startprozesses in den Bootvorgang ein, und loggt alle Prozesse, die gestartet werden mit. So kann man nach dem Starten mittels eines Generierungsbefehls eine grafische Statistik darüber erstellen, die Aufschluss über die Startdauer gibt, und aufzeigt, welche Prozesse wann wie lange brauchten, um zu starten.

Installation

Bootchart ist im AUR verfügbar, und muss aus eben diesem auch installiert werden.

https://aur.archlinux.org/packages.php?ID=43477

Einrichtung

Damit es beim Starten des Computers auch startet und den Bootvorgang mitloggt, muss der Bootloader noch angepasst werden. Es wird davon ausgegangen, dass GRUB verwendet wird.

Je nach Installation und System können die Zeilen geringfügig anders aussehen. Informationen zu den weiteren Zeilen in der Datei bietet der GRUB-Artikel hier im Wiki.

Es gibt nun zwei Möglichkeiten, Bootchart beim Starten des Systems zu laden. Man kann entweder den Eintrag, der nicht „…-Fallback“ ist, anpassen, oder man erstellt einen neuen Eintrag. Es ist ratsam, einen neuen Eintrag zu erstellen. Bei dem neuen Eintrag sollte man die Angaben des Original-Eintrages übernehmen und danach um die Bootchart-Optionen erweitern.

title  Arch Linux Bootchart
root   (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro quiet init=/sbin/bootchartd
initrd /boot/initramfs-linux.img

Mittels dieses Eintrages wird ein Bootmenüpunkt „Arch Linux Bootchart“ eingerichtet. In der „kernel“-Zeile ist die Option „init“ hinzugekommen, die definiert, dass statt des normalen Initskriptes das Bootchart-Initskript ausgeführt werden soll. Dieses lädt sich selbst in den Hintergrund und dann umgehend das normale Initskript, damit der Rechner starten kann.

Wenn man ein eigenes, angepasstes Initskript benutzt, kann man Bootchart mittels des zusätzlichen Kernel-Parameters „bootchart_init“ anweisen, dieses zu benutzen, anstatt des Standard-Startskript zu laden.

Wenn man jetzt neu startet, und im GRUB-Menü den Bootchart-Eintrag auswählt, startet das System und generiert die Logdateien.

Auswertung

Analyse eines Bootvorgangs mittels Bootchart

Bootchart erstellt das Logdateiarchiv standardmäßig unter „/var/log/bootchart.tgz“. Sollte nach dem Booten diese Datei nicht existieren, siehe Fehlerbehebung.

manuelle Generierung

Mittels des Programms „bootchart-render“ wird aus den Logdateien die grafische Auswertung erstellt, dies dauert je nach Umfang des Startvorgangs einen kurzen Moment.

$ bootchart-render 
Parsing /var/log/bootchart.tgz
Wrote image: ./bootchart.png

Das Verzeichnis muss natürlich beschreibbar sein. In der Datei „bootchart.png“ befindet sich nun eine Auswertung des Startvorgangs, anhand dessen man seine Optimierungen begutachten, und Rückschlüsse auf das weitere Vorgehen schließen kann.

automatische Generierung

Wenn man von jedem mit Bootchart geloggten Startvorgang automatisch eine grafische Übersicht erhalten möchte, so kann man dies in der Datei „/etc/bootchartd.conf“ einstellen. In dieser Datei muss dazu der Wert „AUTO_RENDER“ auf „"yes"“ geändert werden. Weitere Optionen können in der Datei ebenfalls angepasst werden. Dies ist im Normalfall allerdings nicht nötig.

Eventuell sollte man noch das Ausgabe-Verzeichnis mittels Anpassung des Wertes „AUTO_RENDER_DIR“ verändern. Es ist zu beachten, dass die generierte Datei bei jedem neuen Generieren überschrieben wird.

Fehlerbehebung

Sollte die Datei „/var/log/bootchart.tgz“ nach dem Booten nicht vorhanden sein, wird das daran liegen, dass Bootchart nicht weiß, wann der Bootvorgang vorbei ist. Standardmäßig beendet Bootchart das Loggen mit dem Start von GDM oder KDM. Wenn man nun allerdings weder GDM noch KDM benutzt, beendet Bootchart das Loggen nicht, und generiert auch die Logdatei nicht.

Bootchart bietet allerdings recht einfach die Möglichkeit, zu definieren, mit dem Start von welchem Programm der Bootvorgang als abgeschlossen gilt. Dazu ist die Datei „/sbin/bootchartd“ zu bearbeiten. In dem Abschnitt „Wait for the boot process to end.“ befindet sich in der 120. Zeile eine Liste von Programmen

local exit_proc="gdmgreeter gdm-binary kdm_greet kdm"

Diese ist nun anzupassen. Für gewöhnlich lässt man ja X auf einem Desktop-PC laufen, also ergänzt man diese Liste um „X“. Man kann die Liste auch einfach durch „X“ ersetzen. Hinweise darauf, welche Prozesse Laufen, liefern top oder htop.

local exit_proc="X"

Auf Systemen, die ohne GUI laufen, und auf denen man nach dem Startvorgang das Login-Prompt sieht, muss man aller Wahrscheinlichkeit nach, das Programm „login“ als End-Programm angeben. Vielleicht muss man ein paar mal rumprobieren, bis man „sein“ Bootprozess-ist-beendet-Programm gefunden hat.

Nach einem Neustart und dem Mitloggen durch Bootchart sollte nun die Datei „/var/log/bootchart.tgz“ erstellt worden sein.

Weblinks

Homepage von Bootchart Sprache en.png