Hinweis:

Systemressourcen auf Oracle Linux überwachen

Einführung

In diesem Tutorial arbeiten Sie mit Oracle Linux vmstat, mpstat und top zusammen, um die Systemressourcennutzung zu überwachen. Die Überwachung der Verwendung von Systemresourses ist nützlich, um Probleme zu erkennen, die sich negativ auf die Systemperformance auswirken können.

Hintergrund

Oracle Linux bietet Tools für die Überwachung und Analyse der Systemressourcennutzung sowie für das Tracing von Tools zur Diagnose von Performanceproblemen in mehreren Prozessen und zugehörigen Threads.

Ziele

Voraussetzungen

Ein Clientsystem mit Oracle Linux 8 oder höher.

Hinweis: Bei der Verwendung der kostenlosen Übungsumgebung finden Sie unter Oracle Linux Lab Basics für Verbindungen und weitere Verwendungsanweisungen.

Prüfen und verwenden Sie die Befehlsoptionen vmstat

vmstat zeigt, wie viel virtueller Speicher vorhanden ist und wie viel frei ist. Der Befehl zeigt auch Paging-Aktivitäten an. Sie können Page-ins und Page-outs beobachten, wie sie im System auftreten.

Möglicherweise sollten Sie den Anzeigebereich maximieren, indem Sie die Steuerelemente Schritte ausblenden und Vollständiger Bildschirm in der Taskleiste verwenden, wie in den Bildern dargestellt.

Schritte ausblenden Schritte ausblenden

Im folgenden Video erhalten Sie einen Überblick über vmstat.

  1. Führen Sie den Befehl vmstat ohne Optionen aus.

    vmstat
    

    Der Befehl generiert einen einzelnen Bericht. Die Ausgabe ist in sechs Abschnitte unterteilt: procs, memory, swap, io, system und cpu.

    • Die ersten beiden Spalten enthalten Informationen zu Prozessen:

      • r ist die Anzahl der Prozesse in einem Wartezustand. Hierbei handelt es sich um Prozesse, die sich im Leerlauf befinden und auf die Ausführung warten.

      • b ist die Anzahl der Prozesse, die sich im Ruhezustand befanden und seit der letzten Aktualisierung unterbrochen wurden.

    • Die nächsten vier Spalten geben Informationen zum Speicher:

      • swpd ist die Größe des verwendeten virtuellen Speichers.

      • free ist die Größe des inaktiven Speichers.

      • buff ist die Speichermenge, die als Puffer verwendet wird.

      • cache ist die Speichermenge, die als Cache verwendet wird.

    • Die nächsten beiden Spalten enthalten Informationen zum Swap-Bereich:

      • si ist die Speichermenge, die von der Festplatte ausgelagert wurde (pro Sekunde).

      • so ist die Speichermenge, die auf den Datenträger ausgelagert wurde (pro Sekunde).

        si- und so-Nummern ungleich null geben an, dass nicht genügend physischer Speicher vorhanden ist, wodurch der Kernel Speicher auf die Festplatte auslagert.

    • In den nächsten beiden Spalten wird "Eingabe/Ausgabe" angezeigt:

      • bi ist die Anzahl der Blöcke pro Sekunde, die von einem Blockgerät empfangen werden.

      • bo ist die Anzahl der Blöcke pro Sekunde, die an ein Block-Device gesendet werden.

    • Die nächsten beiden Spalten enthalten die folgenden Systeminformationen:

      • in ist die Anzahl der Interrupts pro Sekunde, einschließlich der Uhr.

      • cs ist die Anzahl der Kontextwechsel pro Sekunde.

    • Die letzten fünf Spalten geben die Prozentsätze der gesamten CPU-Zeit an:

      • us ist der Prozentsatz der CPU-Zyklen, die für Benutzerprozesse ausgegeben werden.

      • sy ist der Prozentsatz der CPU-Zyklen, die auf System-(Kernel-)Prozessen ausgegeben werden.

      • id ist der Prozentsatz der CPU-Zyklen, die im Leerlauf verbracht wurden.

      • wa ist der Prozentsatz der CPU-Zyklen, die auf I/O warten.

      • st ist der Prozentsatz der CPU-Zyklen, die von einer virtuellen Maschine gestohlen wurden.

  2. Führen Sie den Befehl vmstat 1 (numerisch und nicht den Kleinbuchstaben l) aus, um einen fortlaufenden Bericht für jede Sekunde anzuzeigen.

    vmstat 1
    
    • Klicken Sie zum Beenden auf Ctrl+C.
  3. Führen Sie den Befehl vmstat 7 4 aus, um vier Berichte im Abstand von sieben Sekunden auszuführen.

    vmstat 7 4
    

    Die Zähloption gibt vmstat an, wie viele Berichte ausgeführt werden sollen (4), und die Verzögerungsoption (7) ist das Zeitintervall zwischen den einzelnen Berichten.

  4. Führen Sie den Befehl vmstat -s aus, um eine Tabelle mit verschiedenen Ereigniszählern und Speicherstatistiken anzuzeigen.

    vmstat -s
    
  5. Führen Sie den Befehl vmstat -a aus, um den aktiven und inaktiven Speicher anzuzeigen.

    vmstat -a
    

    Mit der Option -a wird der Speicherplatz active und inaktiv (inact) im Abschnitt memory der Ausgabe angezeigt.

  6. Führen Sie den Befehl vmstat -f aus, um die Anzahl der Gabeln seit dem letzten Booten anzuzeigen.

    vmstat -f
    
  7. Führen Sie den Befehl vmstat -t aus, um der Ausgabe einen Zeitstempel hinzuzufügen.

    vmstat -t
    
  8. Führen Sie den Befehl vmstat -d aus, um Statistiken zur Datenträgerauslastung im System anzuzeigen.

    vmstat -d
    
  9. Führen Sie den Befehl vmstat -p sda1 aus, um einen Bericht für eine bestimmte Datenträgerpartition zu erstellen.

    vmstat -p sda1
    

    Die Ausgabe enthält eine Zusammenfassung für die Partition, einschließlich der Anzahl der Lese- und Schreibvorgänge.

Prüfen und verwenden Sie die Befehlsoptionen mpstat

Mit dem Befehl mpstat können Sie Performancestatistiken für alle logischen CPUs im System erfassen und anzeigen. Wenn eine CPU von einem Prozess belegt wird, ist sie für die Verarbeitung anderer Anforderungen nicht verfügbar. Diese anderen Prozesse müssen warten, bis die CPU frei ist.

Im folgenden Video erhalten Sie einen Überblick über mpstat.

  1. Führen Sie den Befehl mpstat ohne Optionen aus.

    mpstat
    

    In der ersten Zeile werden Linux-Kernelversion, Hostname, aktuelles Datum, Architektur und Anzahl der CPUs in Ihrem System angezeigt.

    Die erste Spalte in der nächsten Zeile enthält einen Zeitstempel, wobei die verbleibenden Spalten wie folgt definiert sind:

    • CPU ist der Prozessor, der durch die Nummer gekennzeichnet ist, die bei 0 beginnt, oder das Schlüsselwort all, das angibt, dass Statistiken als Durchschnittswerte aller Prozessoren berechnet werden.

    • %user ist der Prozentsatz der CPU, die bei der Ausführung von Anwendungen auf Benutzerebene verwendet wird.

    • %nice ist der Prozentsatz der CPU, die bei der Ausführung auf Benutzerebene mit hoher Priorität verwendet wird.

    • %sys ist der Prozentsatz der CPU, die bei der Ausführung auf System-(Kernel-)Ebene verwendet wird.

      Der Befehl mpstat umfasst nicht die Zeit, die für die Wartung von Hardware- und Softwareunterbrechungen aufgewendet wurde.

    • %iowait ist der Prozentsatz der Zeit, die CPUs im Leerlauf waren, während das System eine ausstehende Datenträger-I/O-Anforderung hatte.

    • %irq ist der Prozentsatz der Zeit, die CPUs für die Wartung von Hardwareunterbrechungen aufgewendet haben.

    • %soft ist der Prozentsatz der Zeit, die CPUs für die Wartung von Softwareunterbrechungen aufgewendet haben.

    • %steal ist der Prozentsatz der Zeit, die bei unfreiwilligem Warten durch die virtuelle CPU oder CPUs verbracht wurde, während der Hypervisor einen anderen virtuellen Prozessor bedient hat.

    • %guest ist der Prozentsatz der Zeit, den die CPUs für die Ausführung eines virtuellen Prozessors aufgewendet haben.

    • %gnice ist der Prozentsatz der Zeit, den die CPUs für die Ausführung eines Gastes in Kürze aufwenden.

    • %idle ist der Prozentsatz der Zeit, während dessen die CPU (oder die CPUs) im Leerlauf war und das System keine ausstehende Datenträger-I/O-Anforderung hatte.

  2. Führen Sie den Befehl mpstat 2 5 aus, um die CPU-Aktivität alle zwei Sekunden für insgesamt fünf Berichte für alle CPUs anzuzeigen.

    mpstat 2 5
    

    Die Ausgabe druckt eine Zeile mit Informationen insgesamt fünf Mal und einen Durchschnitt.

  3. Führen Sie den Befehl mpstat -P ALL aus, um die CPU-Auslastung für jede CPU zu melden.

    mpstat -P ALL
    

    Diese Ausgabe druckt eine einzelne Aktivitätszeile für alle CPUs und für jede CPU. Hinweis: mpstat gibt auch die durchschnittliche CPU-Auslastung für den angegebenen Zeitraum aus.

  4. Führen Sie den Befehl mpstat -P ALL 2 5 aus, um die CPU-Aktivität alle zwei Sekunden auf den CPUs anzuzeigen.

    mpstat -P ALL 2 5
    

    Diese Ausgabe gibt CPU-Auslastungsstatistiken für jede CPU 5 Mal in einem Intervall von 2 Sekunden aus. Hinweis: mpstat gibt auch die durchschnittliche CPU-Auslastung für den angegebenen Zeitraum aus.

  5. Führen Sie den Befehl mpstat -A aus, um die CPU-Auslastung zu drucken und die Statistiken in derselben Befehlsausgabe zu unterbrechen.

    mpstat -A
    

Prüfen Sie den Befehl top

Der Befehl top bietet eine fortlaufende Ansicht der Prozessoraktivität in Echtzeit. top zeigt eine Liste der CPU-intensivsten Prozesse oder Aufgaben auf dem System an und stellt eine begrenzte interaktive Schnittstelle zur Bearbeitung von Prozessen bereit.

Im folgenden Video erhalten Sie einen Überblick über top.

  1. Führen Sie den Befehl top ohne Optionen für eine Point-in-Time-Ansicht der CPU-Aktivität aus.

    top
    

    Die Ausgabe wird standardmäßig alle drei Sekunden aktualisiert und in zwei Hauptabschnitte unterteilt.

    Im oberen Abschnitt werden allgemeine Informationen wie die Lastdurchschnittswerte in den letzten 1, 5 und 15 Minuten, die Anzahl der ausgeführten und inaktiven Aufgaben sowie die gesamte CPU- und Speicherauslastung angezeigt.

    • Mit dem folgenden Befehl können Sie die im oberen Abschnitt angezeigte Ausgabe ein- oder ausschalten:

      • Geben Sie den Kleinbuchstaben l (Nicht numerisch 1) ein, um den durchschnittlichen Lade- und Betriebszeitwert umzuschalten.

      • Geben Sie m ein, um die Speicher- und Swap-Auslastung aus- und einzuschalten.

      • Geben Sie t ein, um die Speicher- und Swap-Auslastung aus- und einzuschalten.

    Im unteren Abschnitt wird eine sortierte Liste von Prozessen angezeigt, in der Regel nach CPU-Auslastung, zusammen mit Prozess-ID-Nummern (PIDs) und dem Benutzer, der Eigentümer des Prozesses ist. Darüber hinaus zeigen die Ausgaben Laufzeit und Speicher an, die von den Prozessen verwendet werden.

    Im Folgenden werden die Spalten im unteren Abschnitt beschrieben:

    • PID ist die eindeutige Prozess-ID der Aufgabe.

    • USER ist der effektive Benutzername des Aufgabeneigentümers.

    • PR ist die tatsächliche Priorität der Aufgabe.

    • NI ist der schöne Wert der Aufgabe im Benutzerbereich.

      Ein negativer Wert bedeutet eine höhere Priorität, und ein positiver Wert bedeutet eine niedrigere Priorität. Der Wert Null bedeutet, dass die Priorität einer Aufgabe bei ihrer Ausführung nicht wirksam ist.

    • VIRT ist die Gesamtmenge des von der Aufgabe verwendeten virtuellen Speichers.

      Dieser Wert umfasst alle Code-, Daten- und Shared Librarys sowie Seiten, die ausgelagert wurden.

    • RES ist der nicht ausgelagerte physische Speicher oder die Größe eines Residenten, den eine Aufgabe verwendet.

    • SHR ist der Shared Memory, den die Aufgabe verwendet.

      Dieser Speicher kann potenziell mit anderen Prozessen gemeinsam genutzt werden.

    • S ist der Status der Aufgabe. Es gibt fünf Zustände:

      • D Ununterbrochener Schlaf

      • R Wird ausgeführt

      • S inaktiv

      • T verfolgt oder gestoppt

      • Z Zombie

    • %CPU ist der Anteil der Aufgabe an der seit dem letzten Bildschirmupdate abgelaufenen CPU-Zeit oder CPU-Auslastung, ausgedrückt als Prozentsatz der gesamten CPU-Zeit.

    • %MEM ist der aktuell verwendete Anteil des verfügbaren physischen Speichers oder der Speicherauslastung der Aufgabe.

    • TIME+ ist die gesamte CPU-Zeit, die seit dem Start der Aufgabe verwendet wurde.

    • COMMAND ist der Befehlszeilen- oder Programmname zum Starten einer Aufgabe.

  2. Beenden Sie top, indem Sie Crtl+C eingeben.

Befehlsausgabe von vmstat, mpstat und top vergleichen

In dieser Übung führen Sie verschiedene stress-Tests aus, um verschiedene Lasten in Ihrem Übungssystem zu emulieren. Verwenden Sie dann die Befehle vmstat, mpstat und top, um zu bestimmen, was sie für die verschiedenen Ladetypen melden.

Auch wenn Sie die Tests als Hintergrundprozesse ausführen, sollten Sie zusätzliche Terminalfenster für Ihre Vergleiche öffnen.

Für jedes zusätzliche Fenster müssen Sie sich mit ssh bei der Übungsinstanz bei oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE> anmelden. Dabei ist <IP_ADDRESS_OF_COMPUTE_INSTANCE> die von der Oracle Cloud-Konsole kopierte IP-Adresse.

  1. Installieren Sie das Tool stress.

    1. Verwenden Sie den Befehl dnf repolist, um den Status des ol8_developer_EPEL-Repositorys zu prüfen.

      dnf repolist ol8_developer_EPEL
      
      • Wenn der Status enabled lautet, fahren Sie mit der Installation der Toolpackages stress fort. Andernfalls fahren Sie mit der Aktivierung des Repositorys fort.

      • Aktivieren Sie das Repository mit dem Befehl dnf conifg-manager, wenn der Status disabled lautet.

        dnf config-manager --enable ol8_developer_EPEL
        
  2. Führen Sie den Befehl dnf install aus, um die stress-Toolpackages zu installieren.

    dnf install stress -y
    
  3. Führen Sie den Befehl stress --dry-run aus, um ein Beispiel der Befehlssyntax anzuzeigen. Nehmen Sie sich einen Moment Zeit, und prüfen Sie die Optionen im Beispiel zusammen mit den anderen aufgeführten Befehlsoptionen.

    stress --dry-run
    
  4. Führen Sie die Befehle vmstat 4 4 und mpstat 4 4 aus, um eine Baseline der Systemaktivität anzuzeigen. Beachten Sie insbesondere die CPU-Prozentsätze, die Benutzer- und Systemprozessen (Kernel) zugewiesen sind. Diese Spalte muss nahe Null 0 sein. Beachten Sie auch die Größe des freien Speichers.

    vmstat 4 4
    mpstat 4 4
    
  5. Führen Sie den Befehl stress --cpu aus, um ein rechengebundenes Programm zu emulieren und den Befehl im Hintergrund auszuführen. Mit diesem Befehl werden acht rechengebundene Prozesse gestartet.

    stress --cpu 8 &
    
    • Klicken Sie auf Zurück, um zur Eingabeaufforderung zurückzukehren.

    • Führen Sie den Befehl ps -ef aus, um die ausgeführten stress-Prozesse anzuzeigen. Pipegen Sie die Ausgabe an grep stress.

      ps -ef | grep stress
      
  6. Führen Sie den Befehl vmstat 4 10 aus, und notieren Sie sich die Werte in den Spalten, die mit der CPU-Auslastung verknüpft sind.

    vmstat 4 10
    

    In wenigen Minuten sollten die Prozentsätze unter der Spalte us die von stress generierte Last widerspiegeln.

  7. Führen Sie den Befehl mpstat 4 10 aus, um die Nutzung aller CPUs auszuwerten.

    mpstat 4 10
    
  8. Führen Sie den Befehl mpstat -P ALL 4 10 aus, um die Auslastung jeder CPU auszuwerten.

    mpstat -P ALL 4 10
    
  9. Führen Sie den Befehl top aus, um die CPU-Auslastung durch die stress-Prozesse zu prüfen.

    top
    

    Beachten Sie nach einigen Minuten, dass die stress-Prozesse mit der höchsten Priorität ausgeführt werden. Beenden Sie top, indem Sie Ctrl+C eingeben.

  10. Führen Sie den Befehl pkill aus, um die stress-Prozesse zu beenden.

    pkill stress
    
  11. Führen Sie die Befehle vmstat 4 4 und mpstat 4 4 erneut aus, um eine Baseline der Systemaktivität anzuzeigen.

  12. Führen Sie einen neuen stress-Befehl aus, und fügen Sie die Optionen --vm und --vm-bytes hinzu, um die Speicheraktivität im System zu starten.

    stress --cpu 8 --vm 8 --vm-bytes 512M &
    
  13. Führen Sie vmstat 4 10, mpstat -P ALL 4 10 und top aus, um die CPU- und Speicheraktivität auszuwerten.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Beenden Sie top, indem Sie Crtl+C eingeben.
  14. Verwenden Sie den Befehl pkill, um die stress-Prozesse zu beenden.

    pkill stress 
    
  15. Führen Sie die Befehle vmstat 4 4 und mpstat 4 4 erneut aus, um eine Baseline der Systemaktivität anzuzeigen.

  16. Führen Sie einen neuen Befehl stress aus, und fügen Sie die Option --io hinzu, um die Eingabe-/Ausgabeaktivität im System zu starten.

    stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 &
    
  17. Führen Sie vmstat 4 10, mpstat -P ALL 4 10 und top aus, um die CPU-, Speicher-, Eingabe-/Ausgabeaktivität auszuwerten.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Beenden Sie top, indem Sie Crtl+C eingeben.

    • Verwenden Sie pkill, um stress zu beenden.

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere Inhalte für kostenloses Lernen im Oracle Learning YouTube-Kanal zu. Außerdem besuchen Sie education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.