So prüfen Sie, ob der Kernel - ftrace in Linux aktiviert ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir untersuchen, wie Sie feststellen können, ob das leistungsstarke Tracing - Utility des Linux - Kernels, ftrace, auf Ihrem System aktiviert und zugänglich ist. Wir beginnen damit, das Verzeichnis /sys/kernel/debug/tracing zu untersuchen, das als primäre Schnittstelle für die Interaktion mit ftrace dient.

Nach der ersten Prüfung werden wir das Tool trace-cmd nutzen, um die Funktionalität von ftrace weiter zu überprüfen und die verfügbaren Tracing - Optionen aufzulisten. Abschließend werden wir die relevanten Konfigurationsparameter im Dateisystem /proc/sys/kernel untersuchen, um ein tieferes Verständnis der ftrace - Einrichtung zu erhalten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") subgraph Lab Skills linux/echo -.-> lab-558792{{"So prüfen Sie, ob der Kernel - ftrace in Linux aktiviert ist"}} linux/ls -.-> lab-558792{{"So prüfen Sie, ob der Kernel - ftrace in Linux aktiviert ist"}} linux/cat -.-> lab-558792{{"So prüfen Sie, ob der Kernel - ftrace in Linux aktiviert ist"}} linux/ps -.-> lab-558792{{"So prüfen Sie, ob der Kernel - ftrace in Linux aktiviert ist"}} end

Überprüfen des ftrace - Status mit ls /sys/kernel/debug/tracing

In diesem Schritt werden wir mit der Erkundung von ftrace beginnen, einem leistungsstarken Tracing - Utility, das in den Linux - Kernel integriert ist. ftrace ermöglicht es Entwicklern und Systemadministratoren, das Laufzeitverhalten des Kernels zu verstehen.

Die primäre Schnittstelle für die Interaktion mit ftrace erfolgt über das Debug - Dateisystem, das sich speziell unter /sys/kernel/debug/tracing befindet.

Zunächst überprüfen wir, ob das Debug - Dateisystem eingebunden ist und ob das Verzeichnis tracing existiert. Wir können den Befehl ls verwenden, um den Inhalt dieses Verzeichnisses aufzulisten.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

ls /sys/kernel/debug/tracing

Sie sollten eine Liste von Dateien und Verzeichnissen sehen, die sich auf ftrace beziehen. Die genaue Ausgabe kann je nach Kernelversion und Konfiguration variieren, aber sie sollte in etwa so aussehen:

README                       events                       options
available_events             free_buffer                  per_cpu
available_filter_functions   function_graph_max_depth     printk_formats
available_tracers            function_graph_tracer        set_event
buffer_size_kb               function_profile_dynamic     set_filter
buffer_total_size_kb         function_trace               set_ftrace_filter
current_tracer               instances                    set_ftrace_notrace
dynamic_filter               kprobe_events                set_graph_function
enabled                      kprobe_profile               set_graph_notrace
error_log                    max_graph_depth              set_tracer
event_sources                options                      snapshot
tracing_cpumask              tracing_max_latency          tracing_on
tracing_thresh               trace                        trace_clock
trace_marker                 trace_options                trace_pipe
trace_stat

Wenn Sie eine ähnliche Ausgabe sehen, bedeutet dies, dass die ftrace - Schnittstelle auf Ihrem System verfügbar ist. Wenn Sie eine Fehlermeldung wie "No such file or directory" erhalten, kann dies darauf hinweisen, dass das Debug - Dateisystem nicht eingebunden ist oder ftrace im Kernel nicht aktiviert ist. In der LabEx - Umgebung sollte es jedoch verfügbar sein.

Dieses Verzeichnis enthält verschiedene Dateien, die das Verhalten von ftrace steuern und Tracing - Daten bereitstellen. Wir werden einige dieser Dateien in späteren Schritten untersuchen.

Für den Moment bestätigt die bloße Überprüfung der Existenz dieses Verzeichnisses und seines Inhalts, dass Sie mit ftrace interagieren können.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen von ftrace mit trace-cmd list

Im vorherigen Schritt haben wir die Existenz der ftrace-Schnittstelle im Debug-Dateisystem bestätigt. Jetzt verwenden wir ein Befehlszeilentool namens trace-cmd, um mit ftrace zu interagieren. trace-cmd ist ein Benutzerraum-Utility, das den Prozess der Konfiguration und Datensammlung von ftrace vereinfacht.

Eine der nützlichen Funktionen von trace-cmd ist die Auflistung der verfügbaren Tracing-Ereignisse (events) und Tracer. Dies hilft uns zu verstehen, was wir mit ftrace überwachen können.

Wir verwenden trace-cmd list, um die verfügbaren Tracer anzuzeigen. Tracer sind verschiedene Betriebsmodi für ftrace, die es Ihnen ermöglichen, verschiedene Aspekte des Kernels zu verfolgen.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

trace-cmd list -t

Die Option -t teilt trace-cmd mit, die verfügbaren Tracer aufzulisten. Sie sollten eine Ausgabe ähnlich der folgenden sehen:

List of available tracers:
 blk
 function
 function_graph
 irqsoff
 nop
 preemptirqsoff
 wakeup
 wakeup_rt

Diese Ausgabe zeigt die verschiedenen Tracer, die auf diesem System verfügbar sind. Beispielsweise verfolgt function Funktionsaufrufe, und function_graph verfolgt Funktionsaufrufe und deren Aufrufgraph.

Als Nächstes listen wir die verfügbaren Ereignisse auf, die verfolgt werden können. Ereignisse sind spezifische Punkte im Kernel, an denen Tracing-Informationen gesammelt werden können.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

trace-cmd list -e

Die Option -e teilt trace-cmd mit, die verfügbaren Ereignisse aufzulisten. Dieser Befehl erzeugt eine lange Liste von Ereignissen, die nach Subsystemen kategorisiert sind (z.B. sched, syscalls, ext4). Die Ausgabe wird in etwa so aussehen (nur ein kleiner Teil wird gezeigt):

List of available events:
  ftrace:
    ftrace_buffer_overrun
    ftrace_inject_event
    ftrace_print_event
  kmem:
    kmem_cache_alloc
    kmem_cache_alloc_node
    kmem_cache_free
    kmem_cache_free_page
    kmem_cache_free_pages
    kmem_cache_grow
    kmem_cache_shrink
    mm_page_alloc
    mm_page_alloc_zone_locked
    mm_page_free
    mm_page_free_batched
    mm_page_pcpu_drain
  ... (many more events)

Sie können durch die Ausgabe scrollen, um die große Anzahl an Ereignissen zu sehen, die für das Tracing zur Verfügung stehen. Dies zeigt die detaillierte Einblicksfähigkeit, die ftrace in die Kernel-Operationen bietet.

Die Verwendung von trace-cmd list ist eine gute Möglichkeit, einen Überblick darüber zu erhalten, was ftrace auf Ihrem spezifischen System überwachen kann.

Klicken Sie auf Weiter, um fortzufahren.

Prüfen der ftrace - Konfiguration in /proc/sys/kernel

Neben der Debug - Dateisystem - Schnittstelle unter /sys/kernel/debug/tracing können einige ftrace - verwandte Konfigurationen auch im Verzeichnis /proc/sys/kernel gefunden werden. Das /proc - Dateisystem ist ein virtuelles Dateisystem, das Informationen über Prozesse und andere Systeminformationen bereitstellt. Das Verzeichnis /proc/sys enthält Dateien, die es Ihnen ermöglichen, Kernel - Parameter zur Laufzeit anzuzeigen und zu ändern.

Lassen Sie uns einige Dateien in /proc/sys/kernel prüfen, die sich auf ftrace beziehen. Wir können den Befehl cat verwenden, um den Inhalt dieser Dateien anzuzeigen.

Zunächst überprüfen wir die Datei ftrace_enabled. Diese Datei gibt an, ob ftrace derzeit im Kernel aktiviert ist.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

cat /proc/sys/kernel/ftrace_enabled

Sie sollten eine Ausgabe wie die folgende sehen:

1

Ein Wert von 1 bedeutet, dass ftrace aktiviert ist, und 0 bedeutet, dass es deaktiviert ist.

Als Nächstes schauen wir uns die Datei ftrace_dump_on_oops an. Diese Datei steuert, ob der ftrace - Puffer auf die Konsole ausgegeben wird, wenn ein Kernel - Oops (ein Kernel - Fehler) auftritt.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /proc/sys/kernel/ftrace_dump_on_oops

Die Ausgabe wird wahrscheinlich wie folgt aussehen:

1

Ein Wert von 1 bedeutet, dass der ftrace - Puffer bei einem Kernel - Oops ausgegeben wird, was für das Debugging hilfreich sein kann.

Schließlich überprüfen wir die Datei ftrace_filter_notrace_regex. Diese Datei enthält einen regulären Ausdruck, der verwendet werden kann, um zu filtern, welche Funktionen nicht verfolgt werden, wenn die Funktionsverfolgung verwendet wird.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /proc/sys/kernel/ftrace_filter_notrace_regex

Die Ausgabe kann leer sein oder einen regulären Ausdruck enthalten, je nach Systemkonfiguration:

Diese Dateien in /proc/sys/kernel geben einen Einblick in einige globale ftrace - Einstellungen. Während die meisten detaillierten Konfigurationen und der Datenzugriff über /sys/kernel/debug/tracing erfolgen, bieten diese Dateien eine schnelle Möglichkeit, den Gesamtstatus und einige grundlegende Verhaltensweisen von ftrace zu prüfen.

Sie haben nun die Hauptschnittstellen für die Interaktion mit ftrace erkundet: das Debug - Dateisystem und das Verzeichnis /proc/sys/kernel.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob das Kernel - ftrace - Utility auf einem Linux - System aktiviert und zugänglich ist. Wir haben begonnen, indem wir die primäre ftrace - Schnittstelle im Debug - Dateisystem unter /sys/kernel/debug/tracing untersucht haben. Indem wir den Inhalt dieses Verzeichnisses mit dem Befehl ls aufgelistet haben, haben wir die Existenz von ftrace - verwandten Dateien und Verzeichnissen bestätigt, was darauf hinweist, dass die ftrace - Schnittstelle verfügbar ist.

Dieser erste Schritt hat die grundlegende Voraussetzung für die Verwendung von ftrace bestätigt: Das Debug - Dateisystem muss eingebunden sein und das Tracing - Verzeichnis muss existieren. Das Erscheinen der verschiedenen ftrace - Konfigurations - und Steuerdateien in der Ausgabe von ls /sys/kernel/debug/tracing hat visuell bestätigt, dass die ftrace - Infrastruktur vorhanden und für weitere Interaktionen bereit ist.