Linux / Befehl uptime: Überprüfen Sie die Betriebszeit und die Lastdurchschnittswerte
uptime ist ein Befehl, der die aktuelle Uhrzeit, die Zeit, die das System seit dem letzten Start läuft, die Anzahl der angemeldeten Benutzer und die durchschnittliche Auslastung der letzten 1, 5 und 15 Minuten in einer einzigen Zeile anzeigt. Er wird als Ausgangspunkt verwendet, um schnell zu überprüfen, wann der Server neu gestartet wurde oder um festzustellen, ob die Auslastung vorübergehend oder dauerhaft ist.
uptime
Die durchschnittliche Auslastung ist jedoch nicht dasselbe wie die CPU-Auslastung. Sie stellt die durchschnittliche Anzahl von Aufgaben dar, die entweder ausführbar oder auf I/O in einem nicht unterbrechbaren Zustand wartend sind. Für eine genaue Interpretation müssen daher die Anzahl der CPUs sowie der Status von Festplatte und Netzwerk berücksichtigt werden.
Wie man die Uptime-Ausgabe liest
Das typische Ausgabeformat ist wie folgt. Tatsächliche Zeiten und Zahlen variieren je nach System.
14:32:10 up 12 days, 3:41, 2 users, load average: 0.42, 0.51, 0.48
Das offizielle Handbuch von procps-ng uptime erklärt, dass diese einzelne Zeile aus der aktuellen Uhrzeit, der Betriebszeit, der Anzahl der eingeloggten Benutzer sowie dem 1-, 5- und 15-Minuten-Durchschnittslast besteht.
| Beispielausgabe | Bedeutung | Punkte, auf die bei der Interpretation geachtet werden sollte |
|---|---|---|
14:32:10 |
Aktuelle Systemzeit | Beeinflusst durch Zeitzonen- und Zeitsynchronisationseinstellungen. |
up 12 days, 3:41 |
Seit dem letzten Neustart vergangene Zeit | In Containern kann die Host-Betriebszeit angezeigt werden. |
2 users |
Anzahl der Anmeldesitzungen | Zählungen basierend auf Login-Aufzeichnungen, nicht auf einzigartigen Personen. |
0.42, 0.51, 0.48 |
1-Minuten-, 5-Minuten-, 15-Minuten-Durchschnittslast | Nicht als Prozentsatz normalisiert nach der Anzahl der logischen CPUs. |
Detaillierte Interpretation jedes Elements
Aktuelle Zeit
Der erste Wert ist die vom System erkannte aktuelle Zeit. Wenn sie nicht mit der Protokollzeit übereinstimmt, überprüfen Sie die Zeitzone und den Synchronisierungsstatus mit timedatectl.
timedatectl status
Systemlaufzeit
Nach up wird die seit dem letzten Start verstrichene Zeit angezeigt. Wenn sie kürzer als erwartet ist, überprüfen Sie die Systemprotokolle und Startaufzeichnungen auf ungeplante Neustarts, Kernel-Fehler, Stromprobleme oder administrative Aufgaben.
uptime -p uptime -s
-p zeigt die vergangene Zeit in einem lesbaren Format an, und -s zeigt die Zeit an, zu der das System gestartet wurde. Unterstützte Optionen können je nach der auf Ihrer Distribution installierten Version von procps-ng variieren, überprüfen Sie dies daher mit uptime --help.
Anzahl der angemeldeten Benutzer
Die Anzahl der Benutzer wird auf Grundlage der aktuell angemeldeten Sitzungen berechnet. Wenn derselbe Benutzer sich mehrfach über SSH und Konsole anmeldet, kann dies als mehrere Sitzungen gezählt werden. Um zu sehen, wer angemeldet ist, verwenden Sie w oder who.
w who
Was ist der Load Average?
Zeiträume der drei Zahlen
Die drei Werte der durchschnittlichen Auslastung stellen die Auslastung der letzten 1 Minute, 5 Minuten bzw. 15 Minuten dar. Es handelt sich nicht um einen einfachen arithmetischen Mittelwert, sondern um einen exponentiell gewichteten gleitenden Durchschnitt, der den neueren Zuständen mehr Gewicht gibt, sodass er nicht direkt die Anzahl der Aufgaben zu einem bestimmten Zeitpunkt zeigt.
- Wenn der 1-Minuten-Wert höher ist als die 5-Minuten- und 15-Minuten-Werte, kann das darauf hinweisen, dass die aktuelle Auslastung zunimmt.
- Wenn der 1-Minuten-Wert niedriger ist, kann das darauf hinweisen, dass die zuvor hohe Auslastung nachlässt.
- Wenn alle drei Werte ähnlich hoch sind, kann das darauf hinweisen, dass die Auslastung konstant hoch ist.
Mit der Anzahl der CPUs vergleichen
Die durchschnittliche Last wird nicht durch die Anzahl der CPUs normalisiert. Überprüfen Sie zuerst die Anzahl der logischen CPUs und vergleichen Sie sie dann mit der Last.
nproc
Zum Beispiel hat in einem System mit 4 logischen CPUs eine Last von 1,00 eine andere Bedeutung als 1,00 auf einem System mit einer einzigen CPU. Als einfache Faustregel gilt: Wenn die Last der Anzahl der logischen CPUs ähnlich ist, kann dies darauf hinweisen, dass die ausführbaren Aufgaben einen erheblichen Teil der CPU-Kapazität nutzen, aber dies allein kann keine Engstelle bestätigen.
Warum sie sich von der CPU-Auslastung unterscheidet
Die durchschnittliche Last unter Linux umfasst nicht nur Aufgaben, die auf der CPU laufen oder darauf warten, ausgeführt zu werden, sondern auch Aufgaben, die auf I/O in einem ununterbrechbaren Zustand warten. Daher kann die durchschnittliche Last selbst bei niedriger CPU-Auslastung aufgrund langsamer Festplatten oder Netzwerkspeicher steigen.
Wenn die Last hoch ist, müssen Sie CPU-Auslastung, Warteschlange, I/O-Wartezeit, Speicher und Swap zusammen überprüfen.
top vmstat 1 iostat -xz 1 free -h
iostat ist normalerweise im sysstat-Paket enthalten und könnte nicht installiert sein.
Häufig verwendete uptime-Optionen
Lesbare Anzeige der uptime
uptime --pretty
-p oder --pretty gibt nur die uptime in einem für Menschen lesbaren Satz aus. Sie ist nicht geeignet zum Parsen in Skripten, bei denen der Satz durch die Sprache beeinflusst werden kann.
Startzeit überprüfen
uptime --since
-s oder --since zeigt die Systemstartzeit im Format YYYY-MM-DD HH:MM:SS an. Da dieser Wert basierend auf der aktuellen Zeit berechnet wird, überprüfen Sie ihn zusammen mit den Boot-Logs auf Systemen, bei denen die Zeiteinstellung erheblich geändert wurde.
Container- und Rohformatoptionen
Die neueste Version von procps-ng hat die --container-Option, um die Container-Laufzeit abzufragen, und die --raw-Option, um die aktuelle Zeit und die Laufzeit in Sekunden anzuzeigen.
uptime --container uptime --raw
Diese Optionen sind möglicherweise in älteren Distributionen von procps-ng nicht verfügbar. Wenn die Container-Laufzeitumgebung oder der Kernel die entsprechenden Informationen nicht bereitstellt, können die erwarteten Werte möglicherweise nicht angezeigt werden. Daher sollten Sie die Unterstützung in der tatsächlichen Umgebung überprüfen.
Reihenfolge der Prüfungen, wenn die durchschnittliche Auslastung hoch ist
Beginnen Sie damit, Trends und die Anzahl der CPUs zu überprüfen
- Überprüfen Sie, ob die 1-Minuten-, 5-Minuten- und 15-Minuten-Werte von
uptimesteigen, fallen oder konstant sind. nprocwird verwendet, um die Anzahl der logischen CPUs zu prüfen.- Verwenden Sie
topoderps, um Prozesse zu finden, die viel CPU verwenden. - Verwenden Sie
vmstatundiostat, um die Ausführungswarteschlange und die I/O-Wartezeit zu überprüfen. - Verwenden Sie
free, um verfügbaren Speicher und Swap-Nutzung zu überprüfen.
Schließen Sie nicht auf einen Fehler basierend auf einer einzelnen Zahl.
Es kann normal sein, dass die 1-Minuten-Last kurzzeitig aufgrund kurzer Komprimierungsaufgaben oder Sicherungen ansteigt. Auf der anderen Seite, wenn der 15-Minuten-Wert weiterhin steigt und die Antwortzeiten sich verschlechtern, handelt es sich wahrscheinlich um einen anhaltenden Engpass. Schwellenwerte sollten nicht nur basierend auf der CPU-Anzahl festgelegt werden, sondern auch unter Berücksichtigung des üblichen Verkehrs, der Aufgabenarten, der Speicherleistung und der Service-Latenz.
Wenn eine regelmäßige Beobachtung erforderlich ist, ist es besser, durchschnittliche Last-, CPU-, I/O-, Speicher- und Anwendungsmetriken gemeinsam von einem Überwachungssystem zu sammeln, anstatt sich auf einmalige uptime-Ausgaben zu verlassen.
Punkte, auf die man bei Containern und virtuellen Maschinen achten sollte
Die uptime einer virtuellen Maschine zeigt normalerweise die Laufzeit des Gastsystems an. Da Container den Kernel des Hosts teilen, kann je nach Werkzeug und Umgebung die Betriebszeit des Hosts angezeigt werden. Prüfen Sie die Unterstützung für --container in der neuesten procps-ng, die Namespace-Konfiguration der Container-Laufzeit und die Datenquelle des Überwachungssystems zusammen.
Auch die einem Container zugewiesenen CPU-Grenzen und die von nproc gemeldeten Werte stimmen möglicherweise nicht immer mit der vom Administrator erwarteten Kapazität überein. Es ist sicher, auch die CPU-Anforderungen und -Grenzen des Container-Orchestrators sowie die Drosselungsmetriken zu überprüfen.
Häufig gestellte Fragen
Bedeutet ein Load Average von 1,00 100 % CPU-Auslastung?
Nein. Die durchschnittliche Last spiegelt die Anzahl der Aufgaben in ausführbaren oder nicht unterbrechbaren I/O-Warteständen wider und wird nicht nach der Anzahl der CPUs normalisiert. Die CPU-Auslastung sollte separat mit Tools wie top oder mpstat überprüft werden.
Warum hat sich uptime plötzlich verkürzt?
In den meisten Fällen wurde das System neu gestartet. Überprüfen Sie, ob es ein geplantes Update war oder ob es Stromprobleme oder Kernel-Fehler mit journalctl --list-boots, Systemprotokollen und Betriebsaufzeichnungen gab. Je nach den Einstellungen zur Protokollaufbewahrung können frühere Boot-Aufzeichnungen nicht vorhanden sein.
Warum ist die Anzahl der angemeldeten Benutzer anders als die tatsächliche Anzahl der Personen?
Wenn eine einzelne Person mehrere SSH- oder Konsolensitzungen öffnet, kann jede separat gezählt werden, und es kann Fälle geben, in denen Anmeldeprotokolle abnormal erscheinen. Überprüfen Sie das Terminal und die Anmeldezeit mit w oder who.
Wie kann ich uptime kontinuierlich überprüfen?
Sie können es in regelmäßigen Abständen mit watch ausführen.
watch -n 5 uptime
Wenn Sie langfristige Trends und Alarmmeldungen benötigen, verwenden Sie ein Überwachungssystem anstelle der Anzeige des Ausgabebildschirms.
Zusammenfassung
uptime ist der erste Schritt, um schnell zu überprüfen, ob das System neu gestartet wurde und den Lasttrend. Die drei Mittelwertlasten in der Ausgabe stehen für 1-Minuten-, 5-Minuten- und 15-Minuten-Intervalle, nicht für CPU-Auslastung oder Prozentsätze.
Wenn die durchschnittliche Auslastung hoch ist, überprüfen Sie die Anzahl der logischen CPUs, die CPU-Auslastung, die Ausführungswarteschlange, die I/O-Wartezeit sowie den verfügbaren Speicher und Swap zusammen. Wie man Speicherwerte interpretiert, finden Sie unter Verwendung des Befehls free.




