Nichts ist öder, als einem Rechner beim fehlerfreien Booten zuschauen zu müssen. Jede dabei gesparte Sekunde wäre gewonnene Lebenszeit. Bootchart hilft bei der Jagd nach ihr.
|
Inhalt |
|---|
|
54 | Sicheres Programmieren Der Workshop erklärt anhand eines Beispiels neun kardinale Fehler im Zusammenhang mit dem Prozess-Environment. 62 | Mailman Wer viele Mailinglisten betreibt, braucht einen eigenen Postmann – aber der will erst mal richtig konfiguriert sein. 68 | Admin-Workshop Die Superserver Inetd und Xinetd verwalten Netzdienste und kümmern sich um die Kommunikation mit den Clients. |
Bootchart[1] verfolgt während des Systemstarts, wie sich Platten- und CPU-Last entwickeln, welche Daemons in welcher Reihenfolge starten und ob jemand dabei trödelt. Die gesammelten Erkenntnisse verarbeitet es zu einer übersichtlichen Grafik, wie Abbildung 1 eine zeigt. Bootchart 0.4 kommt als etwa 60 KByte kleiner Tarball, den ich ruck zuck mit
tar xvzpf bootchart-0.4.tar.gz
entpacke. Zu früh gefreut: Die Readme-Datei klärt mich auf, dass Bootchart die Anwesenheit eines Java Development Kit wünscht. Zum Glück ist dass Tool nicht wählerisch, es funktioniert mit GCJ[2], dem IBM Developer Kit[3] und Suns J2SE SDK[4] – ich entscheide mich für Suns Kaffeerösterei. Da ich keinesfalls auf die Anzeige der I/O-Last zu verzichten bereit bin, muss ich zudem der Empfehlung Folge leisten, »iostat« aus dem Sysstat-Paket[5] zu installieren.
Im nächsten Schritt installiere ich den Bootchart-Logger, also die Software, die beim Booten die Daten sammelt. Das mitgelieferte Installskript erkennt eine Reihe gängiger Linux-Distributionen und bindet den Logger automatisch ein. Ich starte das Skript im Bootchart-Verzeichnis einfach per »./install.sh«. Kennt Install die eigene Distribution nicht, muss man es eigenhändig an den Start bringen.
Im nächsten Schritt sind die Java-Komponenten zu kompilieren. Wer mit dem GCJ arbeitet, erledigt das durch »make« im Bootchart-Verzeichnis – fertig. Ist dagegen das JDK von Sun oder IBM im Spiel, gabelt sich der Weg: Ist auch Apache Ant im System, reicht es, im Bootchart-Verzeichnis
ant
zu tippen. Andernfalls haben die Fingerchen mehr Arbeit:
mkdir build javac -d build -classpath src /usr/local/bootchart/Main.java
Die Pfadangabe im letzten Kommando muss auf das Verzeichnis passen, in dem sich die Bootchart-Sourcefiles nach dem Entpacken niedergelassen haben.
Affengriffig
Damit sind alle Vorarbeiten erledigt, es geht los. Ich reboote das System und der Logger nimmt seine Arbeit auf. Nun stoppe ich den Logger manuell mit:
/etc/rc.d/bootchart/bootlog stop
Das Kommando verlangt, je nach Distribution, vielleicht einen etwas anderen Pfad. Unter »/var/log/« finde ich zwei neue Logdateien: »boot.top.log« und »boot.io.log«, sie enthalten Daten über die CPU- und Plattenlast. Um aus den gewonnenen Daten die Übersichtsgrafik zu generieren, reicht
./render.sh
im Bootchart-Verzeichnis. Falls Render .sh einen SVG-Viewer findet, benutzt es ihn nach getaner Arbeit zum Anzeigen des Ergebnisses. Die Jagdsaison auf vergeudete Sekunden ist eröffnet. (jk)
|
Infos |
|---|
|
[1] Bootchart: [http://www.klika.si/ziga/bootchart] [2] GCJ: [http://gcc.gnu.org/java] [3] IBM Developer Kit für Linux: [http://www-106.ibm.com/developerworks/java/jdk/linux140] [4] Sun-SDK: [http://java.sun.com/j2se/1.4.2] [5] Sysstat: [http://perso.wanadoo.fr/sebastien.godard] |
|
Der Autor |
|---|
|
Charly Kühnast administriert Unix-Betriebssysteme im Rechenzentrum Niederrhein in Moers. Zu seinen Aufgaben gehören die Sicherheit und Verfügbarkeit der Firewalls und der DMZ (demilitarisierte Zone). In seiner Freizeit lernt er Japanisch, um endlich die Bedienungsanleitung seiner Mikrowelle lesen zu können. |






