Heute geht es um zwei praktische Tools, die zwar die meisten Linuxe serienmäßig installiert haben, die aber trotzdem kaum einer kennt: Pmap und Lshw. Das eine analysiert detailliert den RAM-Bedarf von Programmen, das andere erfasst die Hardware-Ausstattung des Rechners genauer, als wenn man ihn zerlegt.
Pmap zeigt den Speicherbedarf eines Prozesses Komponente für Komponente an. Denn viele Programme rufen ihrerseits viele Bibliotheken sowie externe Software auf. Bei einem Speicherleck hilft Pmap den Schuldigen dingfest machen. Meist reicht es, »pmap« als Parameter die Prozess-ID zu übergeben.
Abbildung 1 zeigt die (gekürzte) Pmap-Ausgabe eines Apache-Prozesses. Die erste Spalte listet die Speicheradresse, die zweite, sie ist die wichtigste, zeigt den RAM-Bedarf der Software in KBytes. Beim Verdacht auf ein Speicherleck behalte ich die Werte im Auge und sehe recht schnell, ob und wo einer der Werte aus dem Ruder läuft.
Pmap ermittelt die Daten übrigens nicht selbst, sondern bezieht sie aus dem virtuellen Proc-Dateisystem und bereitet sie auf. Die rohen Daten des Apache-Prozesses aus dem Screenshot sehe ich, wenn ich »cat /proc/27579/maps« eingebe.
Fürs Inventar
»lsmod« , »lsof« , »lsusb« sind Tools aus der illustren »ls*« -Reihe, die Leute wie ich oft auf die Kommandozeile tippen. Aber wer kennt Lshw [1]? Es informiert sehr detailliert über die Hardware, auf der ich es ausführe. Starte ich nur »lshw« , überrollen mich mehr als 300 Zeilen Ausgabe – und doppelt so viele, wenn ich es als Root aufrufe. Um den Überblick zurückzugewinnen, darf ich die Ausgabe auf eine so genannte “Klasse” beschränken, also etwa auf Informationen über den Prozessor oder die Netzwerk-Hardware. Welche Klassen es gibt, verrät mir:
lshw -businfo
Abbildung 2 zeigt, wieder leicht gekürzt, die Ausgabe dieses Kommandos. In der dritten Spalte finde ich die Angabe der Klasse, es gibt »system« , »processor« , »bus« , »bridge« , »memory« , »display« , »multimedia« , »network« , »storage« , »disk« und »volume« . Will ich die Ausgabe auf eine Klasse einschränken, schreibe ich:
lshw -class storage
Um die Daten automatisch weiterverarbeiten zu können, etwa um eine Inventarisierungsdatenbank zu füllen, ist auch die Ausgabe in XML oder HTML mit den Parametern »-xml« und »-html« möglich. (jk)
Infos