Pomocí sar můžete monitorovat výkon různých linuxových subsystémů (CPU, paměť, I/O..) v reálném čas.
Pomocí sar můžete také průběžně shromažďovat všechna data o výkonu, ukládat je a provádět historickou analýzu k identifikaci úzkých míst.
Sar je součástí balíčku sysstat.
Tento článek vysvětluje, jak nainstalovat a nakonfigurovat balíček sysstat (který obsahuje nástroj sar) a vysvětluje, jak monitorovat následující statistiky výkonu Linuxu pomocí sar.
- Kolektivní využití procesoru
- Statistiky jednotlivých CPU
- Použitá a dostupná paměť
- Vyměňte použitý a dostupný prostor
- Celkové I/O aktivity systému
- Jednotlivé I/O aktivity zařízení
- Statistiky přepínání kontextu
- Spustit frontu a načíst průměrná data
- Síťové statistiky
- Hlášení dat sar z konkrétního času
Toto je jediný průvodce, který budete potřebovat pro nástroj sar. Uložte si to do záložek pro budoucí použití.
I. Nainstalujte a nakonfigurujte Sysstat
Instalovat balíček Sysstat
Nejprve se ujistěte, že je ve vašem systému k dispozici nejnovější verze sar. Nainstalujte jej pomocí jedné z následujících metod v závislosti na vaší distribuci.
sudo apt-get install sysstat (or) yum install sysstat (or) rpm -ivh sysstat-10.0.0-1.i586.rpm
Nainstalujte Sysstat ze zdroje
Stáhněte si nejnovější verzi ze stránky stahování sysstat.
Můžete také použít wget ke stažení
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.0.tar.bz2 tar xvfj sysstat-10.0.0.tar.bz2 cd sysstat-10.0.0 ./configure --enable-install-cron
Poznámka: Ujistěte se, že jste předali možnost –enable-install-cron. Tím se automaticky provede následující za vás. Pokud nenakonfigurujete sysstat s touto možností, musíte tuto ošklivou práci provést sami ručně.
- Vytvoří /etc/rc.d/init.d/sysstat
- Vytvoří příslušné odkazy z adresářů /etc/rc.d/rc*.d/ na /etc/rc.d/init.d/sysstat pro automatické spuštění sysstat během procesu spouštění Linuxu.
- Například /etc/rc.d/rc3.d/S01sysstat je automaticky propojen s /etc/rc.d/init.d/sysstat
Po souboru ./configure jej nainstalujte, jak je uvedeno níže.
make make install
Poznámka: Tím se nainstaluje sar a další nástroje systat do /usr/local/bin
Po instalaci ověřte verzi sar pomocí „sar -V“. Verze 10 je aktuální stabilní verze sysstat.
$ sar -V sysstat version 10.0.0 (C) Sebastien Godard (sysstat orange.fr)
Nakonec se ujistěte, že sar funguje. Následující příklad uvádí statistiku CPU systému 3krát (s intervalem 1 sekundy).
$ sar 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:27:32 PM CPU %user %nice %system %iowait %steal %idle 01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00 01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50 01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00 Average: all 0.33 0.00 0.17 0.00 0.00 99.50
Obslužné programy součást Sysstat
Následují další nástroje sysstat.
- sar shromažďuje a zobrazuje VŠECHNY statistiky aktivit systému.
- sadc znamená „sběratel dat o aktivitě systému“. Toto je backendový nástroj sar, který provádí sběr dat.
- sa1 ukládá systémové aktivity do binárního datového souboru. sa1 pro tento účel závisí na sadc. sa1 běží z cronu.
- sa2 vytváří denní souhrn shromážděných statistik. sa2 běží z cronu.
- sadf může generovat zprávu sar v CSV, XML a různých dalších formátech. Použijte to k integraci dat sar s dalšími nástroji.
- iostat generuje CPU, I/O statistiky
- mpstat zobrazí statistiku CPU.
- pidstat hlásí statistiky na základě id procesu (PID)
- nfsiostat zobrazí statistiky I/O NFS.
- cifsiostat generuje statistiky CIFS.
Tento článek se zaměřuje na základy sysstat a nástroj sar.
Shromažďujte statistiky sar pomocí úlohy cron – sa1 a sa2
Vytvořte soubor sysstat v adresáři /etc/cron.d, který bude shromažďovat historická data sar.
# vi /etc/cron.d/sysstat */10 * * * * root /usr/local/lib/sa/sa1 1 1 53 23 * * * root /usr/local/lib/sa/sa2 -A
Pokud jste nainstalovali sysstat ze zdroje, výchozí umístění sa1 a sa2 je /usr/local/lib/sa. Pokud jste instalovali pomocí své distribuční metody aktualizace (například:yum, up2date nebo apt-get), může to být /usr/lib/sa/sa1 a /usr/lib/sa/sa2.
Poznámka :Chcete-li porozumět záznamům cron, přečtěte si Linux Crontab:15 úžasných příkladů úloh cronu.
/usr/local/lib/sa/sa1
- Toto se spouští každých 10 minut a shromažďuje data sar pro historické reference.
- Pokud chcete shromažďovat statistiky sar každých 5 minut, změňte */10 na */5 ve výše uvedeném souboru /etc/cron.d/sysstat.
- Toto zapíše data do souboru /var/log/sa/saXX. XX je den v měsíci. saXX soubor je binární soubor. Jeho obsah nelze zobrazit otevřením v textovém editoru.
- Pokud je například dnes 26. den v měsíci, sa1 zapíše data sar do /var/log/sa/sa26
- Do sa1 můžete předat dva parametry:interval (v sekundách) a počet.
- Ve výše uvedeném příkladu crontab:sa1 1 1 znamená, že sa1 shromažďuje data sar jednou s intervalem 1 sekundy (každých 10 minut).
/usr/local/lib/sa/sa2
- Toto probíhá blízko půlnoci (ve 23:53), aby se vytvořil denní souhrnný přehled dat sar.
- sa2 vytvoří soubor /var/log/sa/sarXX (Všimněte si, že se liší od souboru saXX, který vytvořil sa1). Tento soubor sarXX vytvořený sa2 je soubor ASCII, který si můžete prohlédnout v textovém editoru.
- Tím také odstraníte soubory saXX, které jsou starší než týden. Napište tedy rychlý shell skript, který se bude spouštět každý týden a zkopíruje soubory /var/log/sa/* do nějakého jiného adresáře a provede analýzu historických dat sar.
II. 10 praktických příkladů použití Sar
Existují dva způsoby, jak vyvolat sar.
- sar následovaný volbou (bez určení datového souboru saXX). Tím vyhledá soubor dat saXX aktuálního dne a nahlásí údaje o výkonu, které byly zaznamenány do tohoto okamžiku pro aktuální den.
- sar následovaný volbou a navíc zadáním datového souboru saXX pomocí volby -f. Tím se zobrazí údaje o výkonu pro daný den. tj. XX je den v měsíci.
Ve všech níže uvedených příkladech vysvětlíme, jak zobrazit určité údaje o výkonu pro aktuální den. Chcete-li vyhledat konkrétní den, přidejte „-f /var/log/sa/saXX“ na konec příkazu sar.
Všechny příkazy sar budou mít na svém výstupu na 1. řádku následující.
$ sar -u Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
- Linux 2.6.18-194.el5PAE – verze linuxového jádra systému.
- (dev-db) – název hostitele, kde byla shromážděna data sar.
- 03/26/2011 – Datum, kdy byla shromážděna data sar.
- _i686_ – architektura systému
- (8 CPU) – Počet CPU dostupných v tomto systému. U vícejádrových systémů to udává celkový počet jader.
1. CPU Využití VŠECH CPU (sar -u)
To poskytuje kumulativní využití CPU všech CPU v reálném čase. „1 3“ se hlásí každou 1 sekundu celkem 3krát. S největší pravděpodobností se zaměříte na poslední pole „%idle“, abyste viděli zatížení procesoru.
$ sar -u 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:27:32 PM CPU %user %nice %system %iowait %steal %idle 01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00 01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50 01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00 Average: all 0.33 0.00 0.17 0.00 0.00 99.50
Následuje několik variant:
- sar -u Zobrazuje využití procesoru za aktuální den, které bylo do tohoto okamžiku shromážděno.
- sar -u 1 3 Zobrazuje využití procesoru v reálném čase každou 1 sekundu třikrát.
- sar -u VŠECHNY Stejné jako „sar -u“, ale zobrazuje další pole.
- sar -u VŠECHNY 1 3 Stejné jako „sar -u 1 3“, ale zobrazuje další pole.
- sar -u -f /var/log/sa/sa10 Zobrazuje využití procesoru za 10 dní v měsíci ze souboru sa10.
2. Využití CPU jednotlivého CPU nebo jádra (sar -P)
Pokud máte na počítači 4 jádra a chtěli byste vidět, co jednotlivá jádra dělají, proveďte následující.
„-P ALL“ znamená, že by se měly zobrazovat statistiky pro VŠECHNA jednotlivá jádra.
V následujícím příkladu pod „CPU“ sloupec 0, 1, 2 a 3 označuje odpovídající čísla jader CPU.
$ sar -P ALL 1 1 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:34:12 PM CPU %user %nice %system %iowait %steal %idle 01:34:13 PM all 11.69 0.00 4.71 0.69 0.00 82.90 01:34:13 PM 0 35.00 0.00 6.00 0.00 0.00 59.00 01:34:13 PM 1 22.00 0.00 5.00 0.00 0.00 73.00 01:34:13 PM 2 3.00 0.00 1.00 0.00 0.00 96.00 01:34:13 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
„-P 1“ znamená, že by se měly zobrazovat statistiky pouze pro 2. jádro. (Všimněte si, že číslo jádra začíná od 0).
$ sar -P 1 1 1 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:36:25 PM CPU %user %nice %system %iowait %steal %idle 01:36:26 PM 1 8.08 0.00 2.02 1.01 0.00 88.89
Následuje několik variant:
- sar -P VŠECHNY Zobrazuje využití CPU rozdělené podle všech jader za aktuální den.
- sar -P VŠECHNY 1 3 Zobrazuje využití CPU v reálném čase pro VŠECHNA jádra každou 1 sekundu po 3x (rozděleno podle všech jader).
- sar -P 1 Zobrazuje využití CPU pro jádro číslo 1 pro aktuální den.
- sar -P 1 1 3 Zobrazuje využití procesoru v reálném čase pro jádro číslo 1, každou 1 sekundu, třikrát.
- sar -P ALL -f /var/log/sa/sa10 Zobrazuje využití CPU rozdělené podle všech jader za 10 dní v měsíci ze souboru sa10.
3. Volná a použitá paměť (sar -r)
Toto hlásí statistiku paměti. „1 3“ se hlásí každou 1 sekundu celkem 3krát. S největší pravděpodobností se zaměříte na „kbmemfree“ a „kbmemused“ pro volnou a použitou paměť.
$ sar -r 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 07:28:06 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact 07:28:07 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204 07:28:08 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204 07:28:09 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204 Average: 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
Následuje několik variant:
- sar -r
- sar -r 1 3
- sar -r -f /var/log/sa/sa10
4. Swap Space Used (sar -S)
Toto hlásí swapové statistiky. „1 3“ se hlásí každou 1 sekundu celkem 3krát. Pokud jsou „kbswpused“ a „%swpused“ na 0, pak váš systém neprobíhá swapování.
$ sar -S 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 07:31:06 AM kbswpfree kbswpused %swpused kbswpcad %swpcad 07:31:07 AM 8385920 0 0.00 0 0.00 07:31:08 AM 8385920 0 0.00 0 0.00 07:31:09 AM 8385920 0 0.00 0 0.00 Average: 8385920 0 0.00 0 0.00
Následuje několik variant:
- sar -S
- sar -S 1 3
- sar -S -f /var/log/sa/sa10
Poznámky:
- Pomocí „sar -R“ identifikujte počet stránek paměti, které systém za sekundu uvolní, použije a uloží do mezipaměti.
- Použijte „sar -H“ k identifikaci velkých stránek (v kB), které se používají a jsou dostupné.
- K vytvoření statistiky stránkování použijte „sar -B“. tj. Počet kB odstránkovaných dovnitř (a ven) z disku za sekundu.
- Pomocí „sar -W“ vygenerujte statistiku výměny stránek. tj. přepínání stránek (a odcházení) za sekundu.
5. Celkové I/O aktivity (sar -b)
Toto hlásí I/O statistiky. „1 3“ se hlásí každou 1 sekundu celkem třikrát.
Následující pole jsou zobrazena v příkladu níže.
- tps – počet transakcí za sekundu (zahrnuje čtení i zápis)
- rtps – čtení transakcí za sekundu
- wtps – zápis transakcí za sekundu
- bread/s – Bajty přečtené za sekundu
- bwrtn/s – Počet zapsaných bajtů za sekundu
$ sar -b 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:56:28 PM tps rtps wtps bread/s bwrtn/s 01:56:29 PM 346.00 264.00 82.00 2208.00 768.00 01:56:30 PM 100.00 36.00 64.00 304.00 816.00 01:56:31 PM 282.83 32.32 250.51 258.59 2537.37 Average: 242.81 111.04 131.77 925.75 1369.90
Následuje několik variant:
- sar -b
- sar -b 1 3
- sar -b -f /var/log/sa/sa10
Poznámka: Pomocí „sar -v“ zobrazíte počet obslužných rutin inodů, obslužných rutin souborů a pseudoterminálů používaných systémem.
6. I/O aktivity jednotlivých blokových zařízení (sar -d)
Chcete-li identifikovat aktivity jednotlivých blokových zařízení (tj. konkrétní přípojný bod nebo LUN nebo oddíl), použijte „sar -d“
$ sar -d 1 1 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 01:59:46 PM dev8-0 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM dev8-1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM dev120-64 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM dev120-65 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM dev120-0 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM dev120-1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM dev120-96 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91 01:59:46 PM dev120-97 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
Ve výše uvedeném příkladu „DEV“ označuje konkrétní blokové zařízení.
Například:„dev53-1“ znamená blokové zařízení s 53 jako hlavním číslem a 1 jako vedlejším číslem.
Název zařízení (sloupec DEV) může zobrazovat skutečný název zařízení (například:sda, sda1, sdb1 atd.), pokud použijete volbu -p (hezký tisk), jak je uvedeno níže.
$ sar -p -d 1 1 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 01:59:46 PM sda 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM sda1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM sdb1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM sdc1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM sde1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM sdf1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM sda2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91 01:59:46 PM sdb2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
Následuje několik variant:
- sar -d
- sar -d 1 3
- sar -d -f /var/log/sa/sa10
- sar -p -d
7. Přepínání kontextu zobrazení za sekundu (sar -w)
Toto hlásí celkový počet procesů vytvořených za sekundu a celkový počet přepnutí kontextu za sekundu. „1 3“ se hlásí každou 1 sekundu celkem třikrát.
$ sar -w 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 08:32:24 AM proc/s cswch/s 08:32:25 AM 3.00 53.00 08:32:26 AM 4.00 61.39 08:32:27 AM 2.00 57.00
Následuje několik variant:
- sar -w
- sar -w 1 3
- sar -w -f /var/log/sa/sa10
8. Sestavy běží ve frontě a průměrně se načítají (sar -q)
Toto hlásí velikost fronty běhu a průměr zatížení za poslední 1 minutu, 5 minut a 15 minut. „1 3“ se hlásí každou 1 sekundu celkem třikrát.
$ sar -q 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 06:28:53 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 06:28:54 AM 0 230 2.00 3.00 5.00 0 06:28:55 AM 2 210 2.01 3.15 5.15 0 06:28:56 AM 2 230 2.12 3.12 5.12 0 Average: 3 230 3.12 3.12 5.12 0
Poznámka: Sloupec „blokováno“ zobrazuje počet úloh, které jsou aktuálně blokovány a čekají na dokončení I/O operace.
Následuje několik variant:
- sar -q
- sar -q 1 3
- sar -q -f /var/log/sa/sa10
9. Hlásit statistiky sítě (sar -n)
To hlásí různé síťové statistiky. Například:počet paketů přijatých (vyslaných) přes síťovou kartu, statistika selhání paketů atd. „1 3“ se hlásí každou 1 sekundu celkem třikrát.
sar -n KEYWORD
KEYWORD může být jedno z následujících:
- DEV – Zobrazuje důležité statistiky síťových zařízení pro eth0, eth1 atd.,
- EDEV – zobrazení statistik selhání síťového zařízení
- NFS – Zobrazuje aktivity klienta NFS
- NFSD – Zobrazuje aktivity serveru NFS
- SOCK – Zobrazuje sokety používané pro IPv4
- IP – Zobrazuje síťový provoz IPv4
- EIP – Zobrazuje chyby sítě IPv4
- ICMP – Zobrazuje síťový provoz ICMPv4
- EICMP – Zobrazuje chyby sítě ICMPv4
- TCP – Zobrazuje síťový provoz TCPv4
- ETCP – Zobrazuje chyby sítě TCPv4
- UDP – Zobrazuje síťový provoz UDPv4
- SOCK6, IP6, EIP6, ICMP6, UDP6 jsou pro IPv6
- ALL – Zobrazí všechny výše uvedené informace. Výstup bude velmi dlouhý.
$ sar -n DEV 1 1 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:11:13 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s 01:11:14 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 01:11:14 PM eth0 342.57 342.57 93923.76 141773.27 0.00 0.00 0.00 01:11:14 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10. Hlásit data Sar pomocí času zahájení (sar -s)
Když si prohlížíte historická data sar ze souboru /var/log/sa/saXX pomocí možnosti „sar -f“, zobrazí se všechna data sar pro daný konkrétní den počínaje 00:00 daného dne.
Pomocí možnosti „-s hh:mi:ss“ můžete zadat čas zahájení. Pokud například zadáte „sar -s 10:00:00“, zobrazí se data sar od 10:00 (místo od půlnoci), jak je uvedeno níže.
Můžete kombinovat volbu -s s jinou volbou sar.
Chcete-li například nahlásit průměrnou zátěž 26. dne tohoto měsíce od 10:00 ráno, zkombinujte volbu -q a -s, jak je uvedeno níže.
$ sar -q -f /var/log/sa/sa23 -s 10:00:01 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 10:10:01 AM 0 127 2.00 3.00 5.00 0 10:20:01 AM 0 127 2.00 3.00 5.00 0 ... 11:20:01 AM 0 127 5.00 3.00 3.00 0 12:00:01 PM 0 127 4.00 2.00 1.00 0
Neexistuje žádná možnost omezit čas ukončení. Musíte být kreativní a použít příkaz head, jak je znázorněno níže.
Například od 10:00, pokud chcete vidět 7 záznamů, musíte výše uvedený výstup přesměrovat na „head -n 10“.
$ sar -q -f /var/log/sa/sa23 -s 10:00:01 | head -n 10 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 10:10:01 AM 0 127 2.00 3.00 5.00 0 10:20:01 AM 0 127 2.00 3.00 5.00 0 10:30:01 AM 0 127 3.00 5.00 2.00 0 10:40:01 AM 0 127 4.00 2.00 1.00 2 10:50:01 AM 0 127 3.00 5.00 5.00 0 11:00:01 AM 0 127 2.00 1.00 6.00 0 11:10:01 AM 0 127 1.00 3.00 7.00 2
Monitorování a ladění výkonu Linuxu je mnohem více, co je třeba pokrýt. teprve začínáme. Další články přijdou v sérii představení.
Předchozí články ze série sledování a ladění výkonu Linuxu:
- Úvod do monitorování a ladění výkonu systému Linux
- 15 praktických příkladů hlavních příkazů Linuxu