GNU/Linux >> Linux Esercitazione >  >> Linux

Come analizzare le prestazioni di base del sistema utilizzando – vmstat, sar, iostat e mpstat

In questo post verranno discussi alcuni strumenti di profilazione di base inclusi nella maggior parte dei sistemi Linux per impostazione predefinita. Gli strumenti introdotti in questo post, vmstat, sar, iostat e mpstat, sono relativamente semplici ma forniscono dati di base che possono essere molto utili quando si analizzano le prestazioni di un sistema. Per la maggior parte degli esempi utilizzeremo una macchina CentOS 8.

vmstat:statistiche sulla memoria virtuale

Uno degli strumenti più utili per la risoluzione dei problemi di prestazioni relativi alla memoria è vmstat. Il comando vmstat fa parte di procps-ng pacchetto, che include altri utili comandi di analisi delle prestazioni come free e top.

Il comando vmstat, se non viene fornito alcun argomento, stamperà le medie di varie statistiche di sistema dall'avvio. Il comando vmstat accetta due argomenti. Il primo è il ritardo e il secondo è il conteggio . Il ritardo è un valore in secondi tra l'uscita. Il conteggio è il numero di iterazioni di statistiche da riportare. Se non viene fornito alcun conteggio, vmstat riporterà continuamente le statistiche.

Le statistiche sulla memoria sono riportate in KiB per impostazione predefinita. L'opzione —S consente di modificare questo valore per segnalare in KB, MB o MiB con -S k , -S m e -S M , rispettivamente.

La prima riga dell'output di vmstat è sempre una media dall'avvio, quindi quando si raccolgono le metriche, rimuovere la prima riga e utilizzare le righe successive. Le prime due righe di output sono informazioni di intestazione e la terza è la media del tempo di attività. L'esempio seguente mostra l'output di vmstat a partire dalla quarta riga di output:

# 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
...

Panoramica delle colonne vmstat

esempi vmstat

1. Il comando vmstat, se non viene fornito alcun argomento, stamperà le medie di varie statistiche di sistema dall'avvio:

# 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. Ecco un esempio in cui vmstat emetterà statistiche ogni 10 secondi fino all'interruzione:

# 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. Se si desidera che vmstat si chiuda dopo aver stampato quattro report, aggiungere un argomento di conteggio:

# 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:il reporter dell'attività del sistema

Il comando sar è uno strumento di analisi multiuso che fa parte del pacchetto sysstat. Funziona in due modalità. Può leggere i dati raccolti da un cron job ogni 10 minuti, oppure può essere utilizzato per raccogliere dati istantanei sullo stato del sistema.

Nota :Il lavoro cron è installato come /etc/cron.d/sysstat , che esegue i comandi /usr/lib64/sa/sa1 e /usr/lib64/sa/sa2 che raccolgono dati utilizzando /usr/lib64/sa/sadc e sar. Questi dati sono archiviati in /var/log/sa/sadd, dove dd è il giorno del mese a due cifre.Nota :Come il comando vmstat, sar può essere eseguito con delay e count argomenti per riportare le statistiche per un certo numero di iterazioni e con una quantità di ritardo specificata tra ogni iterazione.

Assicurati che sar sia installato prima di iniziare. Se non è installato, installalo usando yum:

# yum install sysstat

Una volta installato, configura sar per raccogliere dati a intervalli di 5 minuti:

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

Per ottenere i migliori risultati quando usi sar, assicurati di impostare una lingua con una LANG variabile di ambiente che fornisce supporto per l'ora 24 ore su 24. Ad esempio, se si ordinano i dati sar in base alla prima colonna (la colonna dell'ora), en_US.UTF-8 la localizzazione si svolgerà alle 13:00:00 prima delle 02:00:00. È probabile che ciò distorca i punti dati e renda un grafico privo di valore. La locale c è quella che soddisfa questo requisito di ordinamento. Quando hai a che fare con i dati sar, sovrascrivi la locale in questo modo:

# 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 ...

In effetti, un alias può essere semplicemente creato per sar. Aggiungi la seguente riga a /etc/bashrc o ~/.bashrc :

alias sar='LANG=C sar'

sar può essere utilizzato per leggere uno dei file di registro (o qualsiasi file di dati sar in generale) utilizzando l'opzione -f.

# 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 ...

È possibile eseguire alcune configurazioni in /etc/sysconfig/sysstat file. Ad esempio, cambia la STORIA variabile per impostare il numero di giorni di conservazione degli archivi per sar.

sar esempi

1. Creare un alias a livello di sistema per sar che costringa sar a segnalare utilizzando l'orario di 24 ore. Sorgente questo nella shell corrente.

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

2. Conserva 60 giorni di archivi invece di 28. Modifica la variabile HISTORY in /etc/sysconfig/sysstat.

# vim /etc/sysconfig/sysstat
HISTORY=60

3. Segnala le statistiche di I/O e velocità di trasferimento:

# 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. Segnala l'utilizzo di 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. Riporta le statistiche del dispositivo di rete dal file di registro corrente.

# 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. Configurare un lavoro cron aggiuntivo per raccogliere i dati sull'utilizzo dell'energia oltre ai dati del disco. Modificare quanto segue nel file /etc/sysconfig/sysstat:

SADC_OPTIONS="-S POWER"

iostat e mpstat

Come sar, anche iostat e mpstat fanno parte del pacchetto sysstat. Sia iostat che mpstat supportano gli argomenti delay e count proprio come il comando vmstat. iostat riporta le statistiche della CPU e degli I/O per i dispositivi. partizioni e file system di rete (NFS).

Il comando mpstat riporta le statistiche relative alla CPU. Come per sar, potrebbe essere necessario configurare la LANG per 24 ore.

Esempi iostat e mpstat

1. Mostra l'output esteso per /dev/sda.

# 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. Mostra le statistiche della CPU per CPU0:

# 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. Come controllare la versione del sistema operativo e di Linux

  2. Come analizzare e confrontare le immagini del contenitore usando Container-diff

  3. Come eseguire il backup e il ripristino delle impostazioni dell'applicazione utilizzando Mackup su un sistema Linux appena installato

  4. Come calcolare l'utilizzo della memoria in Linux usando sar, ps e free

  5. Utilizzo di iostat per monitorare le prestazioni del sistema in Linux (esempi inclusi)

Come identificare il sistema operativo utilizzando il valore TTL e il comando ping

Come installare e utilizzare Git nel sistema Linux

Come usare il comando DD e come masterizzare ISO usandolo

Come installare e utilizzare il comando SAR (per monitorare le prestazioni del sistema) in Linux

Come installare e configurare Redis su un sistema Linux

Utilizzo di vmstat per risolvere i problemi di prestazioni in Linux