Anzeige von Linux-Aufgaben

LinuxLinuxBeginner
Jetzt üben

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

Einführung

Das Überwachen von Systemprozessen ist eine entscheidende Fähigkeit für Linux-Benutzer und Systemadministratoren. Wenn Sie wissen, welche Prozesse laufen und wie sie Ressourcen verbrauchen, können Sie die Systemstabilität und -leistung aufrechterhalten.

In diesem Lab (Praktikum) lernen Sie, wie Sie den Befehl top verwenden, ein leistungsstarkes Tool zur Echtzeitüberwachung von Linux-Systemprozessen. Der Befehl top liefert detaillierte Informationen über die CPU-Nutzung, den Speicherverbrauch und andere wichtige Systemmetriken. Indem Sie diesen essentiellen Befehl beherrschen, können Sie ressourcenintensive Prozesse identifizieren und die Ressourcen Ihres Linux-Systems effektiv verwalten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/echo -.-> lab-271407{{"Anzeige von Linux-Aufgaben"}} linux/cat -.-> lab-271407{{"Anzeige von Linux-Aufgaben"}} linux/cd -.-> lab-271407{{"Anzeige von Linux-Aufgaben"}} linux/top -.-> lab-271407{{"Anzeige von Linux-Aufgaben"}} linux/nano -.-> lab-271407{{"Anzeige von Linux-Aufgaben"}} end

Einführung in den top-Befehl

Der Befehl top ist ein grundlegendes Linux-Werkzeug, das eine dynamische, Echtzeitansicht der auf Ihrem System laufenden Prozesse anzeigt. Der Name "top" bezieht sich auf sein Standardverhalten, die "top" (am meisten CPU-verbrauchenden) Prozesse anzuzeigen.

Beginnen wir damit, in Ihr Projektverzeichnis zu navigieren und die grundlegende Verwendung des top-Befehls zu erkunden:

cd ~/project

Jetzt führen Sie den top-Befehl aus:

top

Wenn Sie diesen Befehl ausführen, sollten Sie eine interaktive Anzeige ähnlich der folgenden sehen:

top - 14:25:30 up 2 days,  3:45,  1 user,  load average: 0.15, 0.20, 0.25
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   4096.0 total,   2841.3 free,    845.2 used,    409.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   2970.5 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox
 2345 labex     20   0   78912  23456  13204 S   0.7   0.6   0:12.34 terminal
 3456 root      20   0   43528   5424   4356 S   0.3   0.1   0:05.67 sshd
  ... (more processes)

Die top-Anzeige besteht aus zwei Hauptabschnitten:

  1. Zusammenfassungsbereich (erste 5 Zeilen): Liefert systemweite Informationen, einschließlich:

    • Systemlaufzeit und Lastdurchschnitte
    • Task-Statistiken (Gesamtzahl, laufend, schlafend usw.)
    • CPU-Nutzungsanteile
    • Speichernutzung (RAM und Swap)
  2. Prozessliste (Tabelle unterhalb der Zusammenfassung): Listet die laufenden Prozesse mit Details wie folgt auf:

    • PID: Prozess-ID
    • USER: Der Besitzer des Prozesses
    • PR: Priorität
    • NI: Nice-Wert
    • VIRT: Verwendeter virtueller Speicher
    • RES: Verwendeter Resident-Speicher
    • %CPU: CPU-Nutzungsanteil
    • %MEM: Speichernutzungsanteil
    • COMMAND: Befehlsname

Die Anzeige aktualisiert sich standardmäßig alle 3 Sekunden automatisch. Um den top-Befehl zu beenden, drücken Sie einfach die Taste q.

Jetzt nehmen wir eine statische Momentaufnahme der Prozesse mit der Option -n 1 auf. Dies veranlasst top, sich nur einmal zu aktualisieren und dann zu beenden:

top -n 1 > ~/project/top_snapshot.txt

Dieser Befehl erstellt eine Datei namens top_snapshot.txt in Ihrem Projektverzeichnis, die eine Momentaufnahme der aktuellen Systemprozesse enthält. Überprüfen wir den Dateiinhalt:

cat ~/project/top_snapshot.txt

Sie sollten eine Ausgabe ähnlich derjenigen sehen, die in der interaktiven top-Sitzung angezeigt wurde, aber als statische Textdatei.

Interpretation der top-Ausgabe

Nachdem Sie nun eine Momentaufnahme der Systemprozesse haben, analysieren wir die Informationen, um zu verstehen, was sie uns über die Ressourcenauslastung des Systems sagen.

Öffnen Sie die Datei top_snapshot.txt mit dem nano-Texteditor:

nano ~/project/top_snapshot.txt

In dieser Datei sehen Sie dieselben Informationen wie in der interaktiven top-Befehlsausgabe. Konzentrieren wir uns darauf, den am meisten CPU-intensiven Prozess aus der Liste zu identifizieren.

Schauen Sie sich den Abschnitt der Prozessliste (unterhalb des Zusammenfassungsbereichs) an und suchen Sie den Prozess mit dem höchsten Wert in der Spalte %CPU. Dies zeigt den Prozess an, der zum Zeitpunkt der Momentaufnahme die meiste CPU verbrauchte.

Beispielsweise, wenn Sie eine Zeile wie diese sehen:

 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox

Dies zeigt, dass der Prozess mit der PID 1234 (firefox), der vom Benutzer "labex" gehört wird, 2,0 % der CPU und 1,0 % des Speichers verwendet hat.

Notieren Sie sich die folgenden Informationen für den Prozess mit der höchsten CPU-Auslastung:

  1. PID (Prozess-ID)
  2. USER (der Besitzer des Prozesses)
  3. %CPU (CPU-Nutzungsanteil)
  4. %MEM (Speichernutzungsanteil)
  5. COMMAND (Der laufende Befehl oder das Programm)

Um nano zu beenden, drücken Sie Ctrl+X.

Jetzt erstellen Sie eine Datei namens top_analysis.txt, um Ihre Ergebnisse zu dokumentieren:

echo "Most CPU-intensive process analysis" > ~/project/top_analysis.txt

Fügen Sie die Details des am meisten CPU-intensiven Prozesses zur Datei hinzu. Ersetzen Sie die Platzhalter durch die tatsächlich beobachteten Werte:

echo "PID: [Replace with PID]" >> ~/project/top_analysis.txt
echo "USER: [Replace with USER]" >> ~/project/top_analysis.txt
echo "CPU%: [Replace with %CPU]" >> ~/project/top_analysis.txt
echo "MEM%: [Replace with %MEM]" >> ~/project/top_analysis.txt
echo "COMMAND: [Replace with COMMAND]" >> ~/project/top_analysis.txt

Beispielsweise, wenn der Prozess 1234 (firefox) der am meisten CPU-intensive war, würden Sie Folgendes eingeben:

echo "PID: 1234" >> ~/project/top_analysis.txt
echo "USER: labex" >> ~/project/top_analysis.txt
echo "CPU%: 2.0" >> ~/project/top_analysis.txt
echo "MEM%: 1.0" >> ~/project/top_analysis.txt
echo "COMMAND: firefox" >> ~/project/top_analysis.txt

Lassen Sie uns überprüfen, was wir in die Datei geschrieben haben:

cat ~/project/top_analysis.txt

Dies sollte den Inhalt Ihrer Analysedatei mit den Details des am meisten CPU-intensiven Prozesses anzeigen.

Sortieren und Filtern von Prozessen in top

Der top-Befehl wird noch leistungsfähiger, wenn Sie lernen, wie Sie Prozesse sortieren und filtern können. In diesem Schritt lernen Sie, wie Sie die top-Anzeige anpassen können, um sich auf bestimmte Informationen zu konzentrieren.

Zunächst führen wir erneut den interaktiven top-Befehl aus:

top

Solange top läuft, können Sie Tastaturkürzel verwenden, um sein Verhalten zu ändern:

  1. Drücken Sie M (Großbuchstabe), um die Prozesse nach Speichernutzung zu sortieren.
  2. Drücken Sie P (Großbuchstabe), um die Prozesse nach CPU-Nutzung zu sortieren (Standard).
  3. Drücken Sie T (Großbuchstabe), um die Prozesse nach der Laufzeit zu sortieren (wie lange sie bereits laufen).
  4. Drücken Sie N (Großbuchstabe), um die Prozesse nach PID (Prozess-ID) zu sortieren.

Versuchen Sie jede dieser Sortieroptionen, um zu sehen, wie sich die Prozessliste ändert. Wenn Sie mit den Experimenten fertig sind, drücken Sie q, um top zu beenden.

Jetzt nehmen wir eine Momentaufnahme der Prozesse, sortiert nach Speichernutzung, auf. Wir verwenden den Batch-Modus von top mit bestimmten Optionen:

top -b -n 1 -o %MEM > ~/project/top_sorted_by_mem.txt

Dieser Befehl verwendet:

  • -b: Batch-Modus (nicht interaktiv)
  • -n 1: Führt nur eine Iteration aus
  • -o %MEM: Sortiert nach Speichernutzung

Lassen Sie uns den Inhalt dieser Datei überprüfen:

cat ~/project/top_sorted_by_mem.txt

Sie sollten die Prozesse in der Reihenfolge ihrer Speichernutzung sehen, wobei die Prozesse mit der höchsten Speicherauslastung oben stehen.

Als Nächstes filtern wir die Prozesse, um nur diejenigen anzuzeigen, die Ihrem Benutzerkonto gehören:

top -b -n 1 -u labex > ~/project/top_user_filtered.txt

Die Option -u labex filtert die Ausgabe, um nur die Prozesse anzuzeigen, die vom Benutzer "labex" gehören. Lassen Sie uns diese Datei untersuchen:

cat ~/project/top_user_filtered.txt

Diese Datei sollte nur die Prozesse anzeigen, die vom Benutzer "labex" gehören.

Schließlich kombinieren wir Sortieren und Filtern, um eine spezifischere Ansicht zu erstellen:

top -b -n 1 -u labex -o %CPU > ~/project/top_custom.txt

Dieser Befehl zeigt nur die Prozesse an, die vom Benutzer "labex" gehören, und sortiert sie nach CPU-Nutzung. Lassen Sie uns das Ergebnis überprüfen:

cat ~/project/top_custom.txt

Diese Anpassungsoptionen machen top zu einem vielseitigen Werkzeug, um sich auf bestimmte Aspekte der Systemleistung und Ressourcenauslastung zu konzentrieren.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den top-Befehl verwenden können, um Prozesse in Linux zu überwachen und zu analysieren. Die von Ihnen erworbenen Fähigkeiten umfassen:

  1. Ausführen des top-Befehls, um eine Echtzeitansicht der Systemprozesse zu erhalten.
  2. Verständnis der im top-Ausgabe angezeigten Informationen, einschließlich CPU-Nutzung, Speichernutzung und Prozessdetails.
  3. Erstellen von Momentaufnahmen der Prozessinformationen zur Analyse.
  4. Identifizieren von ressourcenintensiven Prozessen durch die Prüfung der CPU- und Speichernutzung.
  5. Anpassen der top-Anzeige über Sortier- und Filteroptionen.

Diese Fähigkeiten sind für die Systemadministration und die Leistungsüberwachung in Linux-Umgebungen unerlässlich. Der top-Befehl ist eines der am häufigsten verwendeten Tools, um schnell die Systemgesundheit zu beurteilen und potenzielle Leistungsprobleme zu identifizieren.

Durch das Beherrschen des top-Befehls verfügen Sie nun über die Fähigkeit, Systemressourcen effektiv zu überwachen, Prozesse zu identifizieren, die möglicherweise Leistungsprobleme verursachen, und die Informationen zu sammeln, die zur Optimierung der Systemleistung benötigt werden.