READPROFILE(8) System-Administration READPROFILE(8)

readprofile - Profilbildungs-Informationen des Kernels lesen

ÜBERSICHT

readprofile [Optionen]

Diese Handbuchseite dokumentiert Version 2.0 des Programms.

Der Befehl readprofile verwendet die Informationen in /proc/profile zum Ausgeben von ASCII-Daten auf der Standardausgabe. Die Ausgabe ist in drei Spalten geordnet: die erste bezeichnet die Anzahl der Clock-Ticks, die zweite den Namen der C-Funktion im Kernel, in der diese Anzahl Ticks auftrat und die dritte ist die normalisierte »Last« der Prozedur, berechnet als Verhältnis zwischen der Anzahl der Ticks und der Länge der Prozedur. Die Ausgabe wird mit Leerzeichen aufgefüllt, um die Lesbarkeit zu verbessern.

-a, --all

gibt alle Symbole in der Map-Datei aus. Per Vorgabe werden die Prozeduren nicht ausgegeben, für die 0 Ticks gemeldet wurden.

-b, --histbin

gibt individuelle Anzahlen für die Histogrammskalierung aus.

-i, --info

aktiviert die reine Info-Ausgabe. Dies veranlasst readprofile, nur die vom Kernel verwendete Profilbildungs-Schrittweite auszugeben. Diese Schrittweite ist die Auflösung des Profilbildungs-Puffers und wird während der Kernel-Konfiguration gewählt (mit make config) oder in der Befehlszeile des Kernels. Falls das Argument -t (terse) zusammen mit -i verwendet wird, dann wird nur die Dezimalzahl ausgegeben.

-m, --mapfile Map-Datei

gibt eine Map-Datei an, Vorgabe ist /usr/src/linux/System.map. Sie sollten die Map-Datei in der Befehlszeile angeben, falls Ihr aktueller Kernel nicht derjenige ist, den Sie zuletzt kompiliert haben, oder die Datei System.map an einem anderen Ort gespeichert ist. Falls der Name der Map-Datei mit .gz endet, wird diese unmittelbar entpackt.

-M, --multiplier Multiplikator

Auf einigen Architekturen ist es möglich, die Frequenz der Profilbildungs-Interrupts zu ändern, die der Kernel an jede CPU liefert. Diese Option erlaubt das Festlegen der Frequenz als Multiplikator der Frequenz der Systemuhr in Hz. Unter Linux 2.6.16 wurde die Unterstützung von Multiplikatoren für die meisten Systeme entfernt. Diese Option setzt auch den Profilbildungs-Puffer zurück, was Administratorrechte erfordert.

-p, --profile pro-Datei

gibt einen alternativen Profilbildungs-Puffer an, Vorgabe ist /proc/profile. Die Verwendung einer alternativen Datei ist sinnvoll, wenn Sie die Kernel-Profilbildung an einem bestimmten Punkt »einfrieren« und später lesen wollen. Die Datei /proc/profile kann mit cat(1) oder cp(1) kopiert werden. Komprimierte Profilbildungs-Puffer werden nicht mehr unterstützt, wie dies in readprofile-1.1 noch der Fall war, da das Programm vorher die Größe des Puffers kennen muss.

-r, --reset

setzt den Profilbildungs-Puffer zurück. Dies kann nur mit Administratorrechten aufgerufen werden, da /proc/profile durch alle Benutzer gelesen werden kann, aber nur der Administrator über Schreibrechte dafür verfügt. Dennoch können Sie readprofile set-user-ID 0 machen, um den Puffer zurücksetzen, ohne Privilegien dafür zu erlangen.

-s, --counters

gibt individuelle Zähler in Funktionen aus.

-v, --verbose

aktiviert die ausführliche Ausgabe. Diese wird in vier Spalten geordnet und mit Leerzeichen gefüllt. Die erste Spalte enthält die RAM-Adressen einer Kernel-Funktion, die zweite den Namen der Funktion, die dritte die Anzahl der Clock-Ticks und die letzte die normalisierte Last.

-V, --version

zeigt Versionsinformationen an und beendet das Programm.

-h, --help

zeigt einen Hilfetext an und beendet das Programm.

/proc/profile

Ein binärer Schnappschuss des Profilbildungs-Puffers.

/usr/src/linux/System.map

Die Symboltabelle für den Kernel.

/usr/src/linux/*

Das zu untersuchende Programm :-)

readprofile funktioniert nur mit Kerneln der Version 1.3.x oder neuer, da /proc/profile beim Versionssprung von 1.2 auf 1.3 geändert wurde.

Dieses Programm funktioniert nur mit ELF-Kerneln. Die Änderung für a.out-Kernels ist trivial und muss von dem Benutzer von a.out vorgenommen werden.

Um die Profilbildung zu ermöglichen, muss der Kernel neu gebootet werden, da kein Profilbildungs-Modul verfügbar ist und dies nicht leicht zu bauen ist. Für die Aktivierung geben Sie profile=2 (oder eine andere Zahl) in der Befehlszeile des Kernels an. Die angegebene Zahl ist der Exponent zur Basis 2, der als Profilbildungs-Schrittweite verwendet wird.

Die Profilbildung wird deaktiviert, wenn Interrupts gehemmt sind. Das bedeutet, dass viele Profilbildungs-Informations-Ticks wieder erscheinen, wenn die Interrupts wieder aktiviert werden. Achten Sie auf solche irreführenden Informationen.

So durchsuchen Sie den Profilbildungs-Puffer, geordnet nach Clock-Ticks:


readprofile | sort -nr | less

So zeigen Sie die 20 am häufigsten geladenen Prozeduren an:


readprofile | sort -nr +2 | head -20

So wird nur das Dateisystemprofil ausgegeben:


readprofile | grep _ext2

So zeigen Sie alle Kernel-Informationen einschließlich Speicheradressen an:


readprofile -av | less

So durchsuchen Sie einen »eingefrorenen« Profilbildungs-Puffer für einen derzeit nicht aktiven Kernel:


readprofile -p ~/profile.freeze -m /zImage.map.gz

So starten Sie die Profilbildung mit 2kHz pro CPU und setzen den Profilbildungs-Puffer zurück:


sudo readprofile -M 20

Verwenden Sie zum Melden von Fehlern das Fehlererfassungssystem auf https://github.com/karelzak/util-linux/issues.

Der Befehl readprofile ist Teil des Pakets util-linux, welches heruntergeladen werden kann von: Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

2. Juni 2021 util-linux 2.37.2