GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Tipps für oben:Überwachung der CPU-Last unter Linux

Dieser Artikel ist ein Auszug aus Kapitel 13 des Buches Linux in Action, veröffentlicht von Manning.

War die Leistung Ihres Linux-Rechners unregelmäßig oder ungewöhnlich langsam? Haben Sie den Verdacht, dass die wachsende Nachfrage Ihre verfügbaren Ressourcen übersteigen könnte? Hier sind einige Fragen, die Sie sich stellen sollten:

  • Wie nahe sind Sie daran, Ihre CPU- und Speicherressourcen zu erschöpfen?
  • Läuft etwas unnötigerweise, das heruntergefahren werden könnte?
  • Gibt es etwas, das ohne Ihr Wissen abtrünnig läuft?

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Wo sollten Sie nach Antworten suchen? Die Spitze Programm ist ein guter Ausgangspunkt. Es kann Ihnen einen reichhaltigen, sich selbst aktualisierenden Überblick über die Prozesse geben, die auf Ihrem System ausgeführt werden.

Die folgende Abbildung zeigt einen typischen Bildschirm von top Daten. Die erste Zeile enthält die aktuelle Uhrzeit, die verstrichene Zeit seit dem letzten Systemstart, die Anzahl der derzeit angemeldeten Benutzer und die durchschnittliche Auslastung für die letzte Minute, fünf Minuten und 15 Minuten. Diese Informationen können auch durch Ausführen von uptime zurückgegeben werden .

Da wir versuchen, Leistungsprobleme zu lösen, sind die Datenspalten, die uns am meisten interessieren sollten, %CPU (Prozentsatz der aktuell von einem bestimmten Prozess verwendeten CPU-Kapazität) und %MEM (Prozentsatz der Speicherkapazität). Beachten Sie besonders die Prozesse, die ganz oben in der Liste angezeigt werden.

In diesem Fall können Sie sehen, dass der MySQL-Daemon 4,3 % der CPU des Servers und, aus der nächsten Spalte, 13 % seines Arbeitsspeichers verwendet. Wenn Sie dieser Zeile nach links folgen, sehen Sie, dass die Prozess-ID (PID) 1367 ist und der Prozess ist "im Besitz" von mysql Benutzer.

Vielleicht kommen Sie zu dem Schluss, dass dieser Prozess mehr Ressourcen in Anspruch genommen hat, als gerechtfertigt sind, und geopfert werden müssen (für das Allgemeinwohl, verstehen Sie). Dieses top Display gab Ihnen alles, was Sie brauchen, um es zu töten. Da MySQL ein von systemd verwalteter Dienst ist (auf den Distributionen, die systemd verwenden), sollte Ihre erste Wahl die Verwendung von systemctl sein um den Prozess sanft herunterzufahren, ohne Anwendungsdaten zu gefährden.

systemctl stop mysqld

Wenn der Prozess, den Sie herunterfahren möchten, nicht von systemd verwaltet wird oder wenn etwas schief gelaufen ist und systemctl konnte es nicht stoppen, dann können Sie entweder kill verwenden oder killall um Ihren Prozess zu eliminieren. Einige Systeme erfordern die Installation von killall als Teil des psmisc Paket. Sie übergeben die PID an kill so:

kill 1367

killall verwendet dagegen den Prozessnamen statt seiner ID.

killall mysqld

Töten oder alles töten, das ist hier die Frage . Eigentlich liegt die Antwort auf der Hand. kill beendet einen einzelnen Prozess, basierend auf der PID, während killall tötet so viele Instanzen eines bestimmten Programms, wie ausgeführt werden. Wenn es also zwei oder drei separate MySQL-Instanzen gäbe – die vielleicht verschiedenen Benutzern gehören – würden alle gestoppt. Vor dem Start von killall , stellen Sie sicher, dass es keine ähnlich benannten Prozesse gibt, die Sie weiterhin ausführen möchten und die zu "Kollateralschäden" werden könnten.

Natürlich müssen Sie auch systemctl disable ausführen um sicherzustellen, dass der Prozess beim nächsten Booten nicht neu gestartet wird.

systemctl disable mysqld

Entschlüsselung oben

Falls Sie sie jemals brauchen, die dritte Zeile von top Die Ausgabe, die Sie etwas früher gesehen haben, gibt uns Zeitwerte (in Prozent) für eine Reihe anderer CPU-Metriken. Hier ist ein kurzer Überblick über das Durcheinander von Akronymen, die Sie dort sehen werden:

Metrik Bedeutung
us Zeit, in der Prozesse mit hoher Priorität (unbearbeitet) ausgeführt werden
sy Zeit zum Ausführen von Kernelprozessen
ni Zeit für die Ausführung von (nice) Prozessen mit niedriger Priorität
id Im Leerlauf verbrachte Zeit
wa Wartezeit für den Abschluss von E/A-Ereignissen
hi Aufgewendete Zeit für die Verwaltung von Hardware-Interrupts
si Aufgewendete Zeit für die Verwaltung von Softwareunterbrechungen
st Zeit, die dieser VM durch ihren Hypervisor (Host) gestohlen wurde

Die top Anzeige kann in Echtzeit durch Tastatureingabe angepasst werden. Geben Sie h ein um mehr zu erfahren.

Probleme verursachen (CPU-Last simulieren)

Sehnsucht nach top in Aktion, aber wüssten Sie es nicht, alles läuft reibungslos?

Warum nicht eine CPU-Überlastung auf Krisenniveau simulieren? Ähnlich wie bei Kindern, yes gibt kontinuierlich (digitales) Rauschen aus, bis es aufgefordert wird, aufzuhören. Bei näherem Nachdenken ist das überhaupt nicht wie Kinder.

Dieser Befehl leitet dieses Rauschen an den verfügbaren /dev/null um Datei und & Der Charakter wird den Prozess in den Hintergrund drängen und Ihnen die Kontrolle über die Befehlszeile zurückgeben. Um den Druck zu erhöhen, führen Sie den Befehl noch einige Male aus.

$ yes > /dev/null &

Das sollte sie beschäftigen. Während das alles läuft, schauen Sie sich top an um zu sehen, was passiert. Sie können auch versuchen, andere Anwendungen auszuführen, um zu sehen, wie viel Zeit benötigt wird, um sie zu verlangsamen. Wenn Sie fertig sind, führen Sie killall aus um alle Ihre yes abzuschütteln Sitzungen auf einmal.

$ killall yes


Linux
  1. 3 Tipps zum Drucken mit Linux

  2. 8 Tipps für die Linux-Kommandozeile

  3. Top 5 Podcasts für Neuigkeiten und Tipps zu Linux

  4. So begrenzen Sie die CPU-Auslastung eines Prozesses in Linux

  5. Top 10 Tutorials für Linux-Administratoren

Linux Top Command Tutorial für Anfänger (8 Beispiele)

30 Top-Befehlsbeispiele für die Überwachung unter Linux

3 Tipps zur Verbesserung der Linux-Prozessleistung mit Priorität und Affinität

Prozessüberwachung unter Linux

Einführung in die Linux-Leistungsüberwachung und -optimierung

UNIX / Linux:7 praktische Beispiele für PS-Befehle zur Prozessüberwachung