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

So analysieren Sie die grundlegende Systemleistung mit – vmstat, sar, iostat und mpstat

In diesem Beitrag werden einige grundlegende Profilerstellungstools besprochen, die standardmäßig in den meisten Linux-Systemen enthalten sind. Die in diesem Beitrag vorgestellten Tools vmstat, sar, iostat und mpstat sind relativ einfach, liefern jedoch grundlegende Daten, die bei der Analyse der Systemleistung sehr nützlich sein können. Für die meisten Beispiele verwenden wir einen CentOS 8-Computer.

vmstat:Statistik des virtuellen Arbeitsspeichers

Eines der nützlichsten Tools zur Fehlerbehebung bei speicherbezogenen Leistungsproblemen ist vmstat. Der Befehl vmstat ist Teil von procps-ng Paket, das weitere nützliche Leistungsanalysebefehle wie free und top enthält.

Wenn dem Befehl vmstat keine Argumente übergeben werden, gibt er die Durchschnittswerte verschiedener Systemstatistiken seit dem Booten aus. Der Befehl vmstat akzeptiert zwei Argumente. Die erste ist die Verzögerung , und die zweite ist die Anzahl . Die Verzögerung ist ein Wert in Sekunden zwischen der Ausgabe. Die Anzahl ist die Anzahl der Statistik-Iterationen, die gemeldet werden sollen. Wenn keine Zählung angegeben wird, wird vmstat kontinuierlich Statistiken melden.

Die Speicherstatistiken werden in KiB gemeldet standardmäßig. Mit der Option —S“ können Sie dies mit -S k in KB, MB oder MiB ändern , -Sm und -S M .

Die erste Zeile der vmstat-Ausgabe ist immer ein Durchschnitt seit dem Booten. Wenn Sie also Metriken sammeln, entfernen Sie die erste Zeile und verwenden Sie die nachfolgenden Zeilen. Die ersten beiden Ausgabezeilen sind Header-Informationen und die dritte die durchschnittliche Betriebszeit. Das folgende Beispiel zeigt die Ausgabe von vmstat ab der vierten Ausgabezeile:

# vmstat 10 | tail -n +4
 1  0      0 479748   1044 570784    0    0     0     5   90  132  0  0 100  0  0
 0  0      0 475952   1044 570912    0    0     0     0   81  130  0  0 100  0  0
 0  0      0 479456   1044 570856    0    0     0    52   87  137  0  0 100  0  0
...

Übersicht über vmstat-Spalten

vmstat-Beispiele

1. Der Befehl vmstat gibt, wenn ihm keine Argumente übergeben werden, die Durchschnittswerte verschiedener Systemstatistiken seit dem Booten aus:

# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 424444   1044 615940    0    0    89    14   58   78  1  0 98  1  0

2. Hier ist ein Beispiel, in dem vmstat bis zur Unterbrechung alle 10 Sekunden Statistiken ausgibt:

# vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 426440   1044 615872    0    0    88    14   58   78  1  0 98  1  0
 0  0      0 426072   1044 615872    0    0     0     1   92  137  0  0 100  0  0
 0  0      0 426072   1044 615872    0    0     0     5   74  116  0  0 100  0  0
 ...

3. Wenn Sie möchten, dass vmstat nach dem Drucken von vier Berichten beendet wird, fügen Sie ein count-Argument hinzu:

# vmstat 10 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 425236   1044 616252    0    0    86    13   58   78  1  0 98  1  0
 0  0      0 424936   1044 616252    0    0     0     1   85  129  0  0 100  0  0
 0  0      0 424876   1044 616252    0    0     0    15   70  111  0  0 100  0  0
 0  0      0 423360   1044 616252    0    0     0     1   89  130  0  0 100  0  0

sar:der Systemaktivitäts-Reporter

Der Befehl sar ist ein Mehrzweck-Analysetool, das Teil des sysstat-Pakets ist. Es funktioniert in zwei Modi. Es kann alle 10 Minuten Daten lesen, die von einem Cron-Job gesammelt wurden, oder es kann verwendet werden, um sofortige Daten über den Zustand des Systems zu sammeln.

Hinweis :Der Cron-Job wird als /etc/cron.d/sysstat installiert , das die Befehle /usr/lib64/sa/sa1 und /usr/lib64/sa/sa2 ausführt, die Daten mit /usr/lib64/sa/sadc und sar sammeln. Diese Daten werden in /var/log/sa/sadd gespeichert, wobei dd der zweistellige Tag des Monats ist. Hinweis Hinweis:Wie der Befehl vmstat kann sar mit Verzögerung ausgeführt werden und Argumente zählen, um Statistiken für eine bestimmte Anzahl von Iterationen und mit einer bestimmten Verzögerung zwischen jeder Iteration zu melden.

Stellen Sie sicher, dass sar installiert ist, bevor Sie beginnen. Wenn es nicht installiert ist, installieren Sie es mit yum:

# yum install sysstat

Konfigurieren Sie nach der Installation sar so, dass Daten in 5-Minuten-Intervallen erfasst werden:

# vim /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/5 * * * * root /usr/lib64/sa/sa1 1 1

Stellen Sie für beste Ergebnisse bei der Verwendung von sar sicher, dass Sie ein Gebietsschema mit einem LANG festlegen Umgebungsvariable, die 24-Stunden-Support bietet. Wenn Sie beispielsweise sar-Daten nach der ersten Spalte (der Zeitspalte) sortieren, wird die en_US.UTF-8 Gebietsschema findet um 13:00:00 Uhr vor 02:00:00 Uhr statt. Dies verzerrt wahrscheinlich die Datenpunkte und macht ein Diagramm wertlos. Das Gebietsschema c ist eines, das diese Sortieranforderung erfüllt. Beim Umgang mit sar-Daten überschreiben Sie das Gebietsschema wie folgt:

# LANG=C sar -q
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/21 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

Tatsächlich kann für sar einfach ein Alias ​​erstellt werden. Fügen Sie die folgende Zeile zu /etc/bashrc hinzu oder ~/.bashrc :

alias sar='LANG=C sar'

sar kann verwendet werden, um eine der Protokolldateien (oder jede beliebige sar-Datendatei im Allgemeinen) zu lesen, indem die Option -f verwendet wird.

# sar -q -f /var/log/sa/sa09
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/2021 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

Einige Konfigurationen können in /etc/sysconfig/sysstat vorgenommen werden Datei. Ändern Sie beispielsweise den VERLAUF Variable zum Festlegen der Anzahl der Tage, die Archive für sar aufbewahrt werden.

sar-Beispiele

1. Erstellen Sie einen systemweiten Alias ​​für sar, der sar dazu zwingt, im 24-Stunden-Format zu berichten. Geben Sie dies in die aktuelle Shell ein.

# echo "alias sar='LANG=c sar'" >> /etc/bashrc
# source /etc/bashrc

2. Bewahren Sie 60 Tage Archiv anstelle von 28 auf. Ändern Sie die HISTORY-Variable in /etc/sysconfig/sysstat.

# vim /etc/sysconfig/sysstat
HISTORY=60

3. Melden Sie die E/A- und Übertragungsratenstatistiken:

# sar -b
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:01 AM     38.16     31.03      7.14   1655.33    390.20
12:20:01 AM     12.11      5.81      6.30    280.99    239.08
12:30:01 AM      8.40      2.34      6.06    105.99    229.95
12:40:01 AM      7.38      1.62      5.76     23.48    211.41
12:50:01 AM      8.69      2.64      6.04    125.33    230.58
01:00:01 AM      8.09      2.26      5.83     77.72    227.70
01:10:02 AM     12.25      6.10      6.15    215.14    235.73
...
Average:        12.81      6.41      6.40    343.31    255.49

4. Melden Sie die Auslastung von CPU0:

# sar -P 0
Linux 5.4.10-x86_64-linode132 (web.thegeekdiary.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM       0     11.69      0.00      2.96      0.28      0.06     85.01
12:20:01 AM       0      9.87      0.00      2.53      0.12      0.04     87.44
12:30:01 AM       0      9.96      0.00      2.48      0.09      0.04     87.43
12:40:01 AM       0      9.59      0.00      2.43      0.06      0.04     87.88
12:50:01 AM       0      9.80      0.00      2.46      0.09      0.05     87.59
...
Average:          0     10.00      0.02      2.60      0.14      0.15     87.08

5. Melden Sie die Netzwerkgerätestatistiken aus der aktuellen Protokolldatei.

# sar -n DEV
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:10:01 AM    dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...
Average:       dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...

6. Konfigurieren Sie einen zusätzlichen Cron-Job, um zusätzlich zu den Festplattendaten Stromverbrauchsdaten zu sammeln. Ändern Sie Folgendes in der Datei /etc/sysconfig/sysstat:

SADC_OPTIONS="-S POWER"

iostat und mpstat

Wie sar sind auch iostat und mpstat Teil des sysstat-Pakets. Sowohl iostat als auch mpstat unterstützen die Argumente delay und count genau wie der Befehl vmstat. iostat meldet CPU- und E/A-Statistiken für Geräte. Partitionen und Netzwerkdateisysteme (NFS).

Der Befehl mpstat meldet CPU-bezogene Statistiken. Wie bei sar kann es notwendig sein, das LANG für die 24-Stunden-Zeit zu konfigurieren.

iostat- und mpstat-Beispiele

1. Erweiterte Ausgabe für /dev/sda anzeigen.

# iostat -x sda
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.12    0.08    2.85    0.09    0.24   88.63

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               1.76     7.13    3.55    4.17   122.57    93.88    56.07     0.00    0.83    0.71    0.93   0.88   0.68

2. CPU-Statistiken für CPU0 anzeigen:

# LANG=C mpstat -P 0
Linux 5.4.10-x86_64-linode132 (mywebserver.com) 	02/09/21 	_x86_64_	(1 CPU)

06:32:13     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
06:32:13       0    8.12    0.08    2.37    0.09    0.22    0.25    0.24    0.00    0.00   88.63


Linux
  1. So analysieren und vergleichen Sie Container-Images mit Container-Diff

  2. So sichern und wiederherstellen Sie Anwendungseinstellungen mit Mackup auf einem neu installierten Linux-System

  3. Grundlegende Division mit Variable und Ganzzahl?

  4. 24 iostat-, vmstat- und mpstat-Beispiele für die Linux-Leistungsüberwachung

  5. So berechnen Sie die Speichernutzung in Linux mit sar, ps und free

So identifizieren Sie das Betriebssystem mithilfe des TTL-Werts und des Ping-Befehls

So installieren und verwenden Sie Git in einem Linux-System

Wie man den DD-Befehl verwendet und wie man ISO damit brennt

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

So installieren und konfigurieren Sie Redis auf einem Linux-System

Verwenden von vmstat zum Beheben von Leistungsproblemen unter Linux