Wie überwacht man CPU- und Speicherauslastung auf einem Linux-Server?
Die Überwachung der CPU- und Speicherauslastung kann Ihnen helfen, Prozesse zu identifizieren, die übermäßig viele Serverressourcen verbrauchen, und Leistungsprobleme auf Ihrem Linux-Server zu diagnostizieren.
Linux bietet mehrere integrierte Tools zur Überprüfung der aktuellen Ressourcennutzung, Systemlast und laufenden Prozesse.
CPU-Auslastung mit top überprüfen
Führen Sie folgenden Befehl aus:
top
Das Dienstprogramm top zeigt Echtzeitinformationen über CPU-Auslastung, Speichernutzung, Systemlast und laufende Prozesse an.
Achten Sie in der CPU-Zusammenfassung besonders auf:
- us — CPU-Zeit, die von Benutzerprozessen verwendet wird.
- sy — CPU-Zeit, die vom Kernel verwendet wird.
- id — ungenutzte CPU-Zeit.
- wa — Zeit, die mit dem Warten auf I/O-Operationen verbracht wird.
Die Prozessliste zeigt außerdem den Wert %CPU für einzelne Prozesse an. Ein dauerhaft hoher Wert kann dabei helfen, Anwendungen zu identifizieren, die erhebliche CPU-Ressourcen verbrauchen.
Hinweis:
Auf einem System mit mehreren CPU-Kernen kann ein Multithread-Prozess eine CPU-Auslastung von mehr als 100 % anzeigen. Eine CPU-Auslastung von etwa 200 % kann beispielsweise bedeuten, dass der Prozess die Leistung von zwei logischen CPUs nutzt.
Systemlast überprüfen
Um die aktuelle durchschnittliche Systemlast schnell anzuzeigen, führen Sie folgenden Befehl aus:
uptime
Der Befehl zeigt drei Load-Average-Werte für ungefähr die letzten 1, 5 und 15 Minuten an.
Load Average ist nicht dasselbe wie CPU-Auslastung. Der Wert gibt die durchschnittliche Anzahl von Tasks an, die ausgeführt werden, auf CPU-Zeit warten oder sich in bestimmten nicht unterbrechbaren Wartezuständen befinden.
Um zu überprüfen, wie viele logische CPUs dem System zur Verfügung stehen, führen Sie folgenden Befehl aus:
nproc
Vergleichen Sie bei der Bewertung des Load Average den Wert mit der Anzahl der logischen CPUs, die Ihrem Server zur Verfügung stehen. Ein dauerhaftes Load Average von etwa 4 stellt beispielsweise auf einem Server mit 4 logischen CPUs eine wesentlich höhere relative Last dar als derselbe Wert auf einem Server mit 16 logischen CPUs.
Hinweis:
Ein hoher Load Average bedeutet nicht immer, dass die CPU selbst überlastet ist. Prozesse, die auf Festplatten- oder andere I/O-Operationen warten, können den Load Average ebenfalls erhöhen.
Prozesse mit der höchsten CPU-Auslastung finden
Mit folgendem Befehl können Sie Prozesse nach CPU-Auslastung sortiert anzeigen:
ps -eo pid,user,comm,%cpu,%mem --sort=-%cpu | head
Damit können Sie feststellen, welche Prozesse die meisten CPU-Ressourcen verbrauchen.
Speichernutzung überprüfen
Um die aktuelle RAM- und Swap-Nutzung anzuzeigen, führen Sie folgenden Befehl aus:
free -h
Die Ausgabe zeigt den gesamten, verwendeten, freien und verfügbaren Speicher sowie die Swap-Nutzung an.
Achten Sie bei der Überprüfung des verfügbaren Speichers besonders auf den Wert available. Linux verwendet ansonsten ungenutzten RAM als Dateisystem-Cache. Daher bedeutet ein niedriger free-Wert allein nicht unbedingt, dass zu wenig Arbeitsspeicher verfügbar ist.
Wenn der available-Speicher dauerhaft sehr niedrig ist und der Server aktiv Swap verwendet, kann die Leistung von Anwendungen beeinträchtigt werden. Mit top oder anderen Monitoring-Tools können Sie Prozesse identifizieren, die große Mengen an Arbeitsspeicher verbrauchen.
Ressourcennutzung über einen längeren Zeitraum überwachen
Eine einzelne Messung weist nicht immer auf ein Leistungsproblem hin. CPU-Auslastung und Systemlast können während Backups, Software-Updates, geplanten Aufgaben, Datenbankoperationen oder anderen ressourcenintensiven Prozessen vorübergehend ansteigen.
Wenn der Server regelmäßig langsam wird oder nicht mehr reagiert, überwachen Sie CPU-Auslastung, Load Average, verfügbaren Speicher, Swap-Nutzung und die Prozesse mit dem höchsten Ressourcenverbrauch über einen längeren Zeitraum.