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

Beheben und überwachen Sie die Linux-Systemleistung mit nmon

Nigels Monitor (nmon ) ist ein Tool zur Überwachung der Systemleistung, das ursprünglich von IBM für das Betriebssystem AIX entwickelt und später für Linux auf mehrere CPU-Architekturen portiert wurde.

Der Hauptvorteil von nmon ist, dass Sie verschiedene Aspekte Ihres Systems, wie CPU-Auslastung, Speicher, belegte Festplatte, Netzwerkauslastung und mehr, in einer einzigen, übersichtlichen Ansicht überwachen können. Ohne nmon , müssen Sie spezialisierte Überwachungstools wie top verwenden für Prozesse iostat für Festplatten und ifstat für das Netzwerk, um verschiedene Ressourcen zu überwachen. Jeder von ihnen präsentiert die Daten anders.

Ich habe nmon verwendet zum ersten Mal vor etwa 10 Jahren als AIX-Systemadministrator. Durch die Verwendung von nmon , konnte ich einige schwer zu erkennende Probleme beheben, darunter eines, das zunächst wie ein Netzwerkengpass aussah. Durch gleichzeitiges Untersuchen mehrerer Ressourcen mit nmon , habe ich festgestellt, dass es sich um ein Anwendungsproblem handelt, das durch das Öffnen zu vieler Dateien verursacht wurde.

Zusätzlich zur interaktiven Überwachung Ihres Systems können Sie auch nmon verwenden im Stapelmodus zum Sammeln und Speichern von Leistungsdaten zur Analyse. Weitere Informationen zu nmon für Linux konsultieren Sie die offizielle Seite des Projekts.

Dieser Artikel befasst sich mit diesem leistungsstarken Überwachungstool. Beginnen Sie mit der Installation.

nmon installieren

nmon ist im Standard-Repository vieler Linux-Distributionen verfügbar. Verwenden Sie beispielsweise DNF, um es auf Fedora 35 zu installieren:

$ sudo dnf -y install nmon

Für Red Hat Enterprise Linux oder CentOS, nmon ist im EPEL-Repository (Extra Packages for Enterprise Linux) verfügbar.

So installieren Sie nmon , aktivieren Sie zuerst EPEL:

$ sudo dnf -y install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

$ sudo dnf repolist

Installieren Sie dann nmon mit dnf :

$ sudo dnf -y install nmon

Nun, da Sie nmon installiert haben , verwenden Sie es, um Ihr System zu überwachen.

Nmon interaktiv verwenden

Wenn die Anwendungen installiert sind, können Sie Ihr System interaktiv überwachen, indem Sie nmon ausführen . Sie sehen einen Anfangsbildschirm mit Systeminformationen und einem kleinen Hilfemenü, das anzeigt, welche Tasten Sie drücken können, um zwischen verschiedenen Metriken umzuschalten:

$ nmon

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:04:27────┐
│                                                                 │
│------------------------------                                   │
│ _ __  _ __ ___   ___  _ __    For help type H or ...            │
│| '_ \| '_ ` _ \ / _ \| '_ \    nmon -?  - hint                  │
│| | | | | | | | | (_) | | | |   nmon -h  - full details          │
│|_| |_|_| |_| |_|\___/|_| |_|                                    │
│                               To stop nmon type q to Quit       │
│------------------------------                                   │
│                                                                 │
│Fedora release 35 (Thirty Five) VERSION="35 (Thirty Five)"       │
│Vendor=AuthenticAMD Model=AMD EPYC-Milan Processor               │
│MHz=1911.004 bogomips=3822.00     lscpu:CPU=4 Little Endian      │
│ProcessorChips=4 PhysicalCores=1        Sockets=4 Cores=1 Thrds=1│
│                 VirtualCPUs =4         MHz=0 max=0 min=0        │
│                                                                 │
│Use these keys to toggle statistics on/off:                      │
│  c = CPU         l = CPU Long-term     - = Faster screen updates│
│  C = " WideView  U = Utilisation       + = Slower screen updates│
│  m = Memory      V = Virtual memory    j = File Systems         │
│  d = Disks       n = Network           . = only busy disks/procs│
│  r = Resource    N = NFS               h = more options         │
│  k = Kernel      t = Top-processes     q = Quit                 │
│─────────────────────────────────────────────────────────────────│

Drücken Sie zum Beispiel C schaltet die Anzeige der CPU-Auslastung um:

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:05:58─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User%  Sys% Wait%  Idle|0          |25   |50 |75   100|   │
│  1   3.6  17.2   0.0  79.2|Ussssssss>                    |   │
│  2   2.1   6.2   0.0  91.7|Usss    >                     |   │
│  3   0.0   1.1   0.0  98.9| >                            |   │
│  4   6.1  17.2   0.0   0.5|UUUssssssss>                  |   │
│---------------------------+---------------------------------+│
│Avg   3.0  10.3   0.0  86.7|Usssss>                       |   │
│---------------------------+---------------------------------+│
│──────────────────────────────────────────────────────────────│

Drücken Sie N schaltet die Netzwerkanzeige um und stapelt sie automatisch unter der CPU-Anzeige:

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:17:01─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User%  Sys% Wait%  Idle|0         |25    |50  |75  100|   │
│  1   2.6  10.3   0.0  87.1|Usssss     >                  |   │
│  2   0.0   2.2   0.0  97.8|s           >                 |   │
│  3   6.5  11.0   0.0  82.5|UUUsssss>                     |   │
│  4   0.0   0.5   0.0  99.5|               >              |   │
│---------------------------+---------------------------------+│
│Avg   2.4   5.9   0.0  91.6|Uss     >                     |   │
│---------------------------+---------------------------------+│
│ Network I/O ─────────────────────────────────────────────────│
│I/F Name Recv=KB/s Trans=KB/s p_in p_out in_sz out_sz Peak->..│
│      lo      0.0       0.0       0.0    0.0     0.0    0.0...│
│  enp1s0      0.0       0.0       0.5    0.0    52.0    0.0...│
│  enp7s0    218.6    5923.4    3335.5 9989.68   67.1  607.2...│
│ Network Error Counters ──────────────────────────────────────│
│I/F Name iErrors iDrop iOverrun iFrame oErrors   oDrop oOver..│
│      lo       0       0       0       0       0       0   ...│
│  enp1s0       0   34419       0       0       0       0   ...│
│  enp7s0       0   34419       0       0       0       0   ...│
│──────────────────────────────────────────────────────────────│

Drücken Sie weiterhin andere Tasten, um weitere Metriken in derselben Ansicht zu stapeln. Verwenden Sie beispielsweise D für Platten-E/A M für Speicher und T für Top-Prozesse.

Zusätzlich zum Stapeln neuer Monitore können Sie auch die Punkt- oder Punkttaste (.) drücken, um nur ausgelastete CPUs und Festplatten sowie + anzuzeigen und - um die Bildschirmaktualisierungszeit zu erhöhen oder zu verringern. Verwenden Sie H um Hilfe anzuzeigen.

Da Sie jederzeit verschiedene Monitore und Metriken aktivieren und deaktivieren können, nmon ist ein hochflexibles Werkzeug, das Ihnen hilft, das Verhalten Ihres Systems zu verstehen. Es hilft auch bei der Fehlerbehebung, indem es verschiedene Metriken gleichzeitig anzeigt, eine ganzheitliche Sicht auf das System bietet und Ihre Fähigkeit verbessert, Probleme zu verstehen.

Wenn Sie fertig sind, drücken Sie Q um die Überwachungssitzung zu beenden und zu beenden.

Leistungsdaten sammeln

Sie können nicht nur eine ganzheitliche, interaktive Ansicht Ihres Systems bereitstellen, sondern auch nmon ausführen im Batch-Modus, um Langzeit-Leistungsdaten von Ihrem System für spätere Analysen zu sammeln.

Mit dieser Funktion können Sie zusätzlich zu den vom interaktiven Modus bereitgestellten Echtzeitmetriken nachvollziehen, wie sich Ihr System über einen längeren Zeitraum verhält. Es ist eine leistungsstarke Funktion, die die Kapazitätsplanung ermöglicht und die Möglichkeit bietet, sporadische Probleme zu beheben, die live schwer zu erkennen sind.

Um nmon auszuführen Verwenden Sie im Batch das Flag -f beim Starten der Anwendung. Es muss der erste Parameter sein, der bereitgestellt wird. Standardmäßig nmon sammelt einen Tag lang alle fünf Minuten Daten. Sie können diese Standardwerte ändern, indem Sie die Parameter -s angeben für Erfassungsintervall und -c für die Anzahl der Schnappschüsse.

Zum Beispiel, um nmon zu aktivieren im Batch-Modus eine Stunde lang jede Minute Daten sammeln, einschließlich der Erfassung der wichtigsten Prozesse -t , führen Sie diesen Befehl aus:

$ nmon -f -s60 -c60 -t

Ihre Terminal-Eingabeaufforderung kehrt sofort zurück, da die Anwendung im Hintergrund ausgeführt wird, wenn Sie diesen Befehl ausführen. Sie können sehen, wie es läuft, indem Sie ps verwenden :

$ ps -ef | grep nmon
ricardo 1849 1 0 12:27 pts/0 00:00:00 nmon -f -s60 -c60 -t

Im Stapelmodus nmon speichert die gesammelten Daten im CSV-Format (Comma Separated Value) mit der Erweiterung .nmon im aktuellen Verzeichnis:

$ ls -l
total 36
-rw-r--r--. 1 ricardo ricardo 36395 Feb 13 12:28 f35ks01_220213_1227.nmon

Da es sich um eine CSV-Datei handelt, können Sie sie mit anderen Linux-Befehlszeilentools zur Textbearbeitung verarbeiten oder zur weiteren Analyse mit Tabellenkalkulationssoftware öffnen.

$ head f35ks01_220213_1227.nmon
AAA,progname,nmon
AAA,command,nmon -f -s60 -c60 -t
AAA,version,16k
AAA,disks_per_line,150
AAA,max_disks,256,set by -d option
AAA,disks,10,
AAA,host,f35ks01
AAA,user,ricardo
AAA,OS,Linux,5.16.8-200.fc35.x86_64,#1 SMP PREEMPT Tue Feb 8 20:58:59 UTC 2022,x86_64
AAA,runname,f35ks01

Zusätzlich zu diesen Methoden ist der nmon Das Entwicklungsteam stellt ein Skript zur Verfügung, um diese Daten in Diagramme umzuwandeln, die Sie mit Ihrem Webbrowser anzeigen können. Ich schaue mir als nächstes an, wie das geht.

[ Es wäre nicht Linux, wenn es nicht ein Dutzend Möglichkeiten gäbe, jede Aufgabe auszuführen. Laden Sie diese Anleitung zur Installation von Anwendungen unter Linux herunter, um Informationen zu den verschiedenen Methoden zum Installieren von Software zu erhalten. ]

Diagramme erstellen

CSV ist ein flexibles Format, mit dem Sie diese Daten mit verschiedenen Anwendungen wie Tabellenkalkulationssoftware exportieren, analysieren und anzeigen können. Der nmon Entwickler haben nmonchart erstellt um es etwas einfacher zu machen. Dieses Shell-Skript konvertiert diese Daten mithilfe von Google Charts JavaScript in HTML, um die Daten in einer grafischen Umgebung zu visualisieren und mit ihnen zu interagieren.

Um nmoncart zu verwenden , laden Sie es von nmon herunter Homepage:

$ curl -LO http://sourceforge.net/projects/nmon/files/nmonchart40.tar

Extrahieren Sie dann den Inhalt des Pakets mit tar :

$ mkdir nmonchart

$ tar xvf nmonchart40.tar -C nmonchart

nmonchart verwendet die Korn-Shell (ksh), also installieren Sie zum Erstellen von Diagrammen zuerst ksh in Ihrem System mit dnf :

$ sudo dnf install -y ksh

Als nächstes konvertieren Sie die .nmon Datei, die erstellt wurde, als Sie nmon ausgeführt haben im Stapelmodus mit diesem Befehl:

$ ./nmonchart/nmonchart f35ks01_220213_1227.nmon 

Das Skript erstellt eine HTML-Datei mit demselben Namen wie die Quelle .nmon Datei. Optional können Sie den Namen der Zieldatei als zweiten Parameter für nmonchart angeben . Hier ist ein Beispiel:

$ ls -lg
total 4164
-rw-r--r--. 1 ricardo 113822 Feb 14 18:52 f35ks01_220213_1227.html
-rw-r--r--. 1 ricardo 93436 Feb 13 13:26 f35ks01_220213_1227.nmon
drwx------. 2 ricardo 4096 Aug 28 2020 nmonchart

Ihre Systemdiagramme sind jetzt bereit. Ihr nächster Schritt ist, sie anzusehen.

[ Holen Sie sich den Bash-Shell-Scripting-Spickzettel. ]

Leistungsdiagramme visualisieren

nmonchart erstellt eine einzelne HTML-Datei für jede .nmon Quelldatei, die Sie mit den erforderlichen Diagramm-JavaScript-Bibliotheken eingebettet bereitstellen. Wenn Sie die HTML-Datei auf Ihrem lokalen Computer haben, können Sie sie direkt in Ihrem Webbrowser anzeigen.

Sie können diese Dateien auch über einen Webserver bereitstellen. Eine meiner Lieblingsmethoden hierfür ist die Verwendung von Nginx in einem Podman-Container, wie ich in 20 einzeiligen Linux-Befehlen zum Hinzufügen zu Ihrer Toolbox vorgeschlagen habe.

Erstellen Sie zunächst ein Verzeichnis und verschieben Sie die HTML-Dateien dorthin:

$ mkdir html

$ mv f35ks01_220213_1227.html html/

Verwenden Sie dann Podman, um Inhalte aus html bereitzustellen Verzeichnis mit Nginx auf Port 8080:

$ podman run --rm -v ./html:/usr/share/nginx/html:ro,Z -p 8080:80 -d nginx

Öffnen Sie bei Bedarf Port 8080 auf der Firewall Ihres Servers, um Datenverkehr zuzulassen:

$ sudo firewall-cmd --add-port 8080/tcp 

Zeigen Sie dann in Ihrem Browser auf Ihre URL http://<YOUR_SERVER_IP_ADDR>:8080/f35ks01_220213_1227.html So zeigen Sie die Diagramme an:

Klicken Sie auf eine der Schaltflächen oben auf dem Bildschirm, um das entsprechende Diagramm anzuzeigen. Die Diagramme sind interaktiv. Sie können hinein- und herauszoomen, um detailliertere Daten anzuzeigen, oder mit der Maus über das Diagramm fahren, um detaillierte Daten für einen bestimmten Zeitraum anzuzeigen.

Abschluss

nmon ist eine flexible und leistungsstarke Systemüberwachungsanwendung, die Ihnen hilft, Ihr System besser zu verstehen und bei Problemen Fehler zu beheben. Seine kombinierten Fähigkeiten zur Überwachung und Konsolidierung von Echtzeitdaten aus verschiedenen Systemressourcen mit langfristiger Erfassung und Analyse von Leistungsdaten machen es zu einem fantastischen Tool, das Sie in Ihrem Sysadmin-Gürtel haben sollten.


Linux
  1. Überwachen Sie Ihr Linux-System in Ihrem Terminal mit procps-ng

  2. Verwenden von nfsstat und nfsiostat zur Behebung von NFS-Leistungsproblemen unter Linux

  3. So verwenden Sie den Befehl zum Herunterfahren und Neustarten von Linux mit Beispielen

  4. Verwenden von iostat zur Überwachung der Systemleistung in Linux (Beispiele enthalten)

  5. Grundlegende Befehle zur Behebung von Leistungsproblemen unter Linux

Verwalten und überwachen Sie Linux-Kernel-Module mit Kmon

Überwachen Sie die Ressourcennutzung des Linux-Systems mit SysMonTask

So sichern und wiederherstellen Sie ein Linux-System mit Timeshift

Sichern und Wiederherstellen von Linux-Desktop-Systemeinstellungen mit Dconf

So installieren und verwenden Sie den SAR-Befehl (zur Überwachung der Systemleistung) unter Linux

Lesen und analysieren Sie Ihre Linux-Systemprotokolle mit Journalctl