GNU/Linux >> Znalost Linux >  >> Linux

Jak analyzovat základní výkon systému pomocí – vmstat, sar, iostat a mpstat

V tomto příspěvku se bude diskutovat o řadě základních profilovacích nástrojů, které jsou standardně součástí většiny systémů Linux. Nástroje představené v tomto příspěvku, vmstat, sar, iostat a mpstat, jsou relativně jednoduché, ale poskytují základní údaje, které mohou být velmi užitečné při analýze výkonu systému. Pro většinu příkladů budeme používat počítač CentOS 8.

vmstat:Statistika virtuální paměti

Jedním z nejužitečnějších nástrojů při řešení problémů s výkonem souvisejících s pamětí je vmstat. Příkaz vmstat je součástí procps-ng balíček, který obsahuje další užitečné příkazy pro analýzu výkonu, jako je free a top.

Pokud příkaz vmstat nezadá žádné argumenty, vytiskne průměry různých systémových statistik od spuštění. Příkaz vmstat přijímá dva argumenty. První je zpoždění , a druhý je počet . Zpoždění je hodnota v sekundách mezi výstupem. Počet je počet iterací statistiky, které se mají hlásit. Pokud není zadán žádný počet, vmstat bude průběžně hlásit statistiky.

Statistiky paměti jsou uvedeny v KiB ve výchozím stavu. Možnost —S umožňuje tuto změnu změnit na hlášení v KB, MB nebo MiB s -S k , -S m a -S M , respektive.

První řádek výstupu vmstat je vždy průměrem od spuštění, takže při shromažďování metrik odstraňte první řádek a použijte následující řádky. První dva řádky výstupu jsou informace záhlaví a třetí je průměrná doba provozuschopnosti. Následující příklad ukazuje výstup vmstat začínající na čtvrtém řádku výstupu:

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

Přehled sloupců vmstat

příklady vmstat

1. Pokud příkaz vmstat nezadá žádné argumenty, vytiskne průměry různých systémových statistik od spuštění:

# 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. Zde je příklad, kdy vmstat bude vydávat statistiky každých 10 sekund až do přerušení:

# 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. Pokud chcete, aby se vmstat po vytištění čtyř zpráv ukončil, přidejte argument počtu:

# 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:reportér aktivity systému

Příkaz sar je víceúčelový analytický nástroj, který je součástí balíčku sysstat. Funguje ve dvou režimech. Dokáže číst data shromážděná úlohou cron každých 10 minut, nebo jej lze použít ke shromažďování okamžitých dat o stavu systému.

Poznámka :Úloha cron je nainstalována jako /etc/cron.d/sysstat , který spouští příkazy /usr/lib64/sa/sa1 a /usr/lib64/sa/sa2, které shromažďují data pomocí /usr/lib64/sa/sadc a sar. Tato data jsou uložena v /var/log/sa/sadd, kde dd je dvoumístný den v měsíci.Poznámka :Stejně jako příkaz vmstat lze sar spustit se zpožděním a argumenty počítání, aby se hlásily statistiky pro určitý počet iterací a se zadanou dobou zpoždění mezi každou iterací.

Než začnete, ujistěte se, že je nainstalován sar. Pokud není nainstalován, nainstalujte jej pomocí yum:

# yum install sysstat

Po instalaci nakonfigurujte sar tak, aby shromažďoval data v 5minutových intervalech:

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

Nejlepších výsledků při používání sar dosáhnete, když nastavíte národní prostředí pomocí LANG proměnná prostředí, která poskytuje 24hodinovou časovou podporu. Pokud například třídíte data sar podle prvního sloupce (časový sloupec), cs_US.UTF-8 locale bude umístěno 13:00:00 před 02:00:00. To pravděpodobně povede ke zkreslení datových bodů a graf bude bezcenný. Národní prostředí c je takové, které splňuje tento požadavek na třídění. Při práci s daty sar přepište národní prostředí takto:

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

Ve skutečnosti lze pro sar jednoduše vytvořit alias. Přidejte následující řádek do /etc/bashrc nebo ~/.bashrc :

alias sar='LANG=C sar'

sar lze použít ke čtení jednoho ze souborů protokolu (nebo obecně jakéhokoli datového souboru sar) pomocí volby -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 ...

Některé konfigurace lze provést v /etc/sysconfig/sysstat soubor. Změňte například HISTORII proměnnou pro nastavení počtu dní, po které jsou archivy uchovávány pro sar.

příklady sar

1. Vytvořte celosystémový alias pro sar, který nutí sar hlásit pomocí 24hodinového času. Zdroj to do aktuálního shellu.

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

2. Udržujte archivy 60 dní místo 28. Změňte proměnnou HISTORY v /etc/sysconfig/sysstat.

# vim /etc/sysconfig/sysstat
HISTORY=60

3. Oznamte statistiku I/O a přenosové rychlosti:

# 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. Nahlaste využití 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. Nahlaste statistiku síťového zařízení z aktuálního souboru protokolu.

# 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. Nakonfigurujte další úlohu cron pro shromažďování dat o spotřebě energie kromě dat na disku. Upravte následující v souboru /etc/sysconfig/sysstat:

SADC_OPTIONS="-S POWER"

iostat a mpstat

Stejně jako sar jsou iostat a mpstat součástí balíčku sysstat. Iostat i mpstat podporují argumenty zpoždění a počtu stejně jako příkaz vmstat. iostat hlásí CPU a I/O statistiky pro zařízení. oddíly a síťové systémy souborů (NFS).

Příkaz mpstat hlásí statistiky související s CPU. Podobně jako u sar může být nutné nakonfigurovat LANG na 24 hodin.

příklady iostat a mpstat

1. Zobrazit rozšířený výstup pro /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. Zobrazit statistiku CPU pro 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. Jak zkontrolovat verzi OS a Linuxu

  2. Jak analyzovat a porovnávat obrázky kontejnerů pomocí Container-diff

  3. Jak zálohovat a obnovit nastavení aplikací pomocí Mackupu na nově nainstalovaném systému Linux

  1. Základní dělení pomocí proměnné a celého čísla?

  2. 24 Příklady iostat, vmstat a mpstat pro monitorování výkonu Linuxu

  3. Jak vypočítat využití paměti v Linuxu pomocí sar, ps a zdarma

  1. Jak vyvažuji funkce a výkon v mém linuxovém terminálu

  2. Jak shromažďovat systémové a aplikační metriky pomocí Metricbeat

  3. Použití iostatu k monitorování výkonu systému v Linuxu (včetně příkladů)