Der Linux-Befehl time: Messung von Ausführungszeit und Ressourcenverbrauch
Was ist der Linux-Befehl time?
Zweck und Funktion
Der Befehl time
ist ein unverzichtbares Werkzeug in der Linux-Shell, mit dem du die Ausführungszeit und den Ressourcenverbrauch von Befehlen messen kannst. Er bietet detaillierte Informationen zur Laufzeit, einschließlich Benutzer- und Systemzeit, Echtzeit und Speicherverbrauch.
Wie funktioniert er?
time
führt den von dir angegebenen Befehl aus und protokolliert dabei die benötigte Zeit und die verbrauchten Ressourcen. Die Ausgabe wird in einem einheitlichen Format bereitgestellt, sodass du die Leistung verschiedener Befehle leicht vergleichen kannst.
Anwendungsfälle
Dieser vielseitige Befehl hat eine Vielzahl von Anwendungsfällen, darunter:
- Fehlerbehebung: Identifiziere Befehle, die ungewöhnlich viel Zeit in Anspruch nehmen oder zu viele Ressourcen verbrauchen.
- Leistungsoptimierung: Vergleiche die Leistung verschiedener Versionen eines Befehls, um Bereiche für Verbesserungen zu ermitteln.
- Benchmarking: Vergleiche die Leistung verschiedener Systeme oder Konfigurationen.
- Überwachung: Überwache die Leistung laufender Prozesse, um Engpässe oder Leistungsprobleme zu erkennen.
Verwendung des Befehls time
Mit dem Linux-Befehl time kannst du die Ausführungszeit und den Ressourcenverbrauch eines Befehls messen. Du kannst ihn verwenden, um die Leistung von Befehlen zu vergleichen, Engpässe zu identifizieren und die Ausführungsparameter zu optimieren.
Syntax
Die Syntax des Befehls time lautet wie folgt:
time [Optionen] Befehl [Argumente]
Optionen
Der Befehl time bietet zahlreiche Optionen, mit denen du die Datenausgabe steuern kannst. Hier sind einige nützliche Optionen:
- -v, --verbose: Zeigt ausführliche Informationen über die Ausführungszeit an, einschließlich der verbrauchten CPU-Zeit, der verbrauchten Echtzeit und der Anzahl der unfreiwilligen Kontextwechsel.
- -o, --output=FILE: Schreibt die Ausgabe in die angegebene Datei.
- --format=FORMAT: Gibt die Ausgabe im angegebenen Format aus.
- -a, --append: Fügt die Ausgabe einer vorhandenen Datei hinzu.
Wie du den Befehl time verwendest
Um den Befehl time zu verwenden, führe ihn einfach vor dem Befehl aus, den du messen möchtest. Beispielsweise kannst du die Ausführungszeit des Befehls ls wie folgt messen:
time ls
Die Ausgabe des Befehls time liefert dir Informationen über die Ausführungszeit, den Ressourcenverbrauch und andere relevante Metriken.
Messen der Ausführungszeit
Die Ausführungszeit eines Befehls ist die Zeit, die er für die Ausführung benötigt, einschließlich der Zeit, die für die Systemressourcenzuweisung, die Befehlsausführung und die Rückgabe der Kontrolle an die Shell aufgewendet wird. Du kannst die Ausführungszeit mithilfe der folgenden Metriken messen:
- Echtzeit (elapsed): Die Gesamtzeit, die für die Ausführung des Befehls benötigt wird, einschließlich der Wartezeiten.
- Benutzerzeit (user): Die Zeit, die der Befehl im Benutzermodus ausgeführt wird.
- Systemzeit (sys): Die Zeit, die der Befehl im Kernelmodus ausgeführt wird.
Messung des Ressourcenverbrauchs
Der Befehl time kann auch den Ressourcenverbrauch eines Befehls messen, z. B. den Speicherverbrauch, die Anzahl der Seitenfehler und die Anzahl der unfreiwilligen Kontextwechsel. Diese Informationen können dir helfen, Engpässe zu identifizieren und die Ausführungsparameter zu optimieren.
Erkennen, wie lange ein Befehl läuft
Wenn du wissen möchtest, wie lange ein Befehl läuft, ist der Linux-Befehl time
dein Freund. Mit time
kannst du die Ausführungszeit eines beliebigen Befehls messen, indem du ihm den Befehl als Argument übergibst.
Einfache Zeiterfassung
Die einfachste Möglichkeit, die Ausführungszeit zu messen, ist die folgende:
time <befehl>
Beispiel:
time ls /
Diese Ausgabe zeigt die Ausführungszeit in realer Zeit, Benutzerzeit und Systemzeit an:
real 0m0.001s
user 0m0.000s
sys 0m0.000s
Interpretieren der Ausgabe
- Reale Zeit: Die Gesamtzeit von der Befehlsausführung bis zum Abschluss, einschließlich Wartezeiten.
- Benutzerzeit: Die Zeit, die der Befehl in deinem Nutzerkontext verbracht hat.
- Systemzeit: Die Zeit, die der Befehl im Kernel-Kontext verbracht hat.
Wenn du nur an der reinen Ausführungszeit interessiert bist, summiere die Benutzer- und Systemzeit.
Messung des Ressourcenverbrauchs
Neben der Ausführungszeit ermöglicht dir der Befehl time
auch die Messung des Ressourcenverbrauchs des ausgeführten Befehls. Dazu gehören:
CPU-Auslastung
Du kannst die gesamte vom Befehl genutzte CPU-Zeit mit der Option -v
messen:
time -v [Befehl]
Die Ausgabe enthält mehrere Zeilen mit CPU-bezogenen Informationen, darunter:
-
User
: Die von dem Befehl im Benutzermodus verbrachte CPU-Zeit -
System
: Die von dem Befehl im Systemmodus verbrachte CPU-Zeit -
Elapsed
: Die Gesamtzeit, die der Befehl benötigt hat
Speicherauslastung
Zum Messen der vom Befehl verbrauchten Speicherauslastung kannst du die Option -v
zusammen mit der Option -l
verwenden:
time -vl [Befehl]
Die Ausgabe enthält eine Zeile mit Speicherinformationen, darunter:
-
Maximum resident set size
: Die maximale Menge an physischem Speicher, die vom Befehl belegt wurde -
Average resident set size
: Die durchschnittliche Menge an physischem Speicher, die vom Befehl belegt wurde
I/O-Statistik
Du kannst die vom Befehl ausgeführten I/O-Operationen mit der Option -v
zusammen mit der Option -i
messen:
time -vi [Befehl]
Die Ausgabe enthält mehrere Zeilen mit I/O-bezogenen Informationen, darunter:
-
Input
: Die Anzahl der vom Befehl gelesenen Blöcke -
Output
: Die Anzahl der vom Befehl geschriebenen Blöcke
Anzeigen detaillierter Informationen über die Ausführungszeit
Über die grundlegenden Statistiken hinaus bietet dir der Befehl time
die Möglichkeit, aufschlussreiche Details über die Ausführungszeit eines Befehls zu erhalten.
Benutzer- und Systemzeit
Neben der Gesamtlaufzeit liefert time
Informationen zur Benutzerzeit und zur Systemzeit.
- Benutzerzeit: Dies ist die Zeit, die ein Befehl im Benutzermodus verbracht hat, in dem er Anweisungen direkt für den Prozessor ausführt.
- Systemzeit: Dies ist die Zeit, die ein Befehl im Systemmodus verbracht hat, in dem er auf Diensten oder Ressourcen des Kernels zugreift.
Du kannst diese Informationen verwenden, um zu verstehen, ob ein Befehl durch die direkte Ausführung oder durch den Zugriff auf Systemressourcen begrenzt ist.
Ein-/Ausgabewarteschlangen
time
zeigt auch die Zeit an, die ein Befehl in Ein-/Ausgabewarteschlangen verbracht hat.
- Ein-/Ausgabewarteschlange (E/A-Warteschlange): Dies ist die Zeit, die ein Befehl auf Daten von einer E/A-Quelle wie einer Festplatte oder einem Netzwerk gewartet hat.
- Wartezeit auf Ein-/Ausgabe (Wartezeit für E/A): Dies ist die Zeit, die ein Befehl auf die Durchführung einer E/A-Operation gewartet hat, nachdem die Daten in der Warteschlange waren.
Diese Informationen können hilfreich sein, um Engpässe in deinem System zu identifizieren, die durch langsame E/A-Vorgänge verursacht werden.
Seitenfehler
time
verfolgt auch die Anzahl der Seitenfehler, die während der Befehlsaufruf aufgetreten sind.
- Seitenfehler: Dies ist ein Fehler, der auftritt, wenn ein Befehl auf einen Speicherbereich zugreift, der nicht im physischen Speicher vorhanden ist und deshalb von der Festplatte geladen werden muss.
Eine hohe Anzahl von Seitenfehlern kann auf einen unzureichenden Arbeitsspeicher oder auf einen ineffizienten Speicherzugriff durch den Befehl hindeuten.
Fehlersuche bei Befehlen mit dem Befehl time
Wenn du versuchst, die Ausführungszeit oder den Ressourcenverbrauch eines Befehls mit dem Befehl time
zu messen, kannst du auf einige Fehler stoßen. Hier sind einige häufige Probleme und Möglichkeiten, sie zu beheben:
Der Befehl time
wird nicht erkannt
- Stelle sicher, dass du den Befehl
time
korrekt eingegeben hast. - Überprüfe, ob die
time
-Binärdatei auf deinem System installiert ist. Unter Ubuntu kannst du dies mit dem Befehlwhich time
prüfen. - Installiere die
time
-Binärdatei, falls sie nicht installiert ist.
Der gemessene Befehl wird nicht korrekt ausgeführt
- Überprüfe, ob du den zu messenden Befehl korrekt eingegeben hast.
- Stelle sicher, dass der gemessene Befehl die erforderlichen Berechtigungen besitzt, um ausgeführt zu werden.
- Überprüfe, ob der gemessene Befehl von deinem System unterstützt wird.
Die Ausgabe des Befehls time
ist schwer verständlich
- Verwende die Option
-o FORMAT
des Befehlstime
, um die Ausgabe im gewünschten Format zu formatieren. - Betrachte die Seite
man time
für weitere Informationen zur Ausgabeformatierung.
Der gemessene Befehl verbraucht unerwartet viele Ressourcen
- Überprüfe, ob der gemessene Befehl für die Ausführung auf deinem System optimiert ist.
- Betrachte die Verwendung des Befehls mit dem Befehl
top
oderhtop
, um mögliche Engpässe zu identifizieren. - Optimieren den gemessenen Befehl, um den Ressourcenverbrauch zu reduzieren.
Der Befehl time
stürzt mit einer Fehlermeldung ab
- Stelle sicher, dass du die neueste Version des Befehls
time
verwendest. - Melde den Fehler den Entwicklern der
time
-Binärdatei. - Verwende alternative Methoden, um die Ausführungszeit oder den Ressourcenverbrauch zu messen, z. B. die
/usr/bin/time
-Binärdatei oder das Skript/usr/lib/time
.
Tipps und Best Practices für die Verwendung des Befehls time
Bei der Verwendung des Befehls time beachte folgende Tipps und Best Practices, um optimale Ergebnisse zu erzielen:
Nutze Optionen zur Steuerung der Ausgabe
Der Befehl time bietet verschiedene Optionen, mit denen du die Ausgabe anpassen kannst. So kannst du beispielsweise mit der Option -v
detaillierte Informationen über den Ressourcenverbrauch anzeigen lassen. Verwende die Option -a
, um eine Zusammenfassung der Ausführungszeiten und Ressourcenverbrauchsdaten zu erhalten.
Interpretiere die Ausgabe sorgfältig
Die Ausgabe des Befehls time kann komplex sein, insbesondere bei umfangreichen Befehlen. Nimm dir Zeit, die Ausgabe zu interpretieren und zu verstehen, welche Informationen bereitgestellt werden. Suche nach den Abschnitten "real", "user" und "sys", die die Ausführungszeit des Befehls angeben.
Verwende time als Wrapper-Befehl
Du kannst time als Wrapper-Befehl verwenden, um Befehle auszuführen und deren Ausführungszeit zu messen. Dies kann hilfreich sein, um die Leistung mehrerer Befehle zu vergleichen oder um lang laufende Aufgaben zu überwachen.
Verwende Profiling-Tools
Für detailliertere Einblicke in die Befehlslaufzeit kannst du Profiling-Tools wie Valgrind oder gprof verwenden. Diese Tools bieten zusätzliche Datenpunkte wie die Anzahl der Funktionsaufrufe, die Speicherzuteilung und den Cache-Trefferanteil.
Experimentiere mit verschiedenen Befehlen
Probiere verschiedene Befehle mit time aus, um zu verstehen, wie sie sich auf die Ausführungszeit auswirken. Dies kann dir helfen, Befehle zu optimieren und die Leistung deines Systems zu verbessern.
Beachte Einschränkungen
Der Befehl time hat einige Einschränkungen. So kann er beispielsweise die Ausführungszeit von Befehlen, die im Hintergrund ausgeführt werden, nicht messen. Berücksichtige diese Einschränkungen bei der Verwendung des Befehls.
Neue Posts
World of Warcraft auf Linux spielen: Eine guide für Abenteurer
Einführung in World of Warcraft
Node.js NVM: Antworten auf die häufigsten Fragen
Entwicklung
Professionelle Gmail-HTML-Signaturen: Erstellen, Gestalten und Nutzen
Marketingstrategien
Die vollständige Anleitung zu poczta wp: Alles, was Sie wissen müssen
Sicherheit und Datenschutz
HTML-Content: Der ultimative Leitfaden zur Erstellung ansprechender Webseiten
SEO-Optimierung
Das HTML-Title-Attribut: Ein Leitfaden zur Optimierung von Titeln für SEO und Benutzerfreundlichkeit
Online-Marketing
HTTP-Statuscodes: Ihre Bedeutung und Verwendung im Web
Einführung in HTTP-Statuscodes
Besucherzähler für Websites: Tracking Ihres Website-Traffics für Erfolg
SEO-Optimierung
Beschleunigen Sie die Dateneingabe mit HTML Datalist
Webentwicklung
HTML in PUG konvertieren: Einfach und schnell gemacht
Webentwicklung
Beliebte Posts
SteamCMD: Der umfassende Leitfaden zur Verwaltung von Steam-Servern
Sicherheitsrichtlinien
POST-Anfragen: Erstellen, Senden und Empfangen von Daten im Web
Webentwicklung
LaTeX: Das mächtige Werkzeug für hochwertiges Dokumentenschreiben
Dokumentenerstellung
Wiederherstellung beschädigter Linux-Dateisysteme mit fsck: Ein umfassender Leitfaden
Fehlerbehebung
Die vollständige Anleitung zu poczta wp: Alles, was Sie wissen müssen
Sicherheit und Datenschutz
Gigacube Admin: Zugang zu den erweiterten Einstellungen Ihres Routers
Fehlerbehebung
Linux Mint Themes: Personalisieren Sie Ihren Desktop
Open Source
TCPdump-Beispiele: Paketakquise und Netzwerkdiagnose
Fehlerbehebung
Mounten von ISO-Images unter Linux: Eine Schritt-für-Schritt-Anleitung
Anleitungen
Linux Open File: Anleitung zum Öffnen, Bearbeiten und Löschen von Dateien aus dem Terminal
Open Source