Tento článek představuje 10 způsobů, jak můžete použít příkaz System Activity Report (sar) ke sledování zdrojů v Linuxu.
1. Zobrazit společné využití všech CPU
Spuštěním následujícího příkazu zobrazíte souhrn využití procesoru:
sar -u
Tento příkaz vydává kumulativní využití zdrojů všech CPU v reálném čase.
K tomuto příkazu můžete přidat další parametry. Například přidání 1 3
na konci příkazu, jak je znázorněno v následujícím příkladu, hlásí celkem 3krát každou 1 sekundu:
sar -u 1 3
Výstup je podobný následujícímu příkladu:
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
Poslední pole, %idle
, označuje zatížení CPU.
Příkaz má následující varianty:
sar -u
:Zobrazuje využití procesoru pro aktuální den.sar -u 1 3
:Zobrazuje využití procesoru v reálném čase každou 1 sekundu třikrát.sar -u ALL
:Stejné jakosar -u
příkaz, ale zobrazí další pole.sar -u ALL 1 3
:Stejné jakosar -u 1 3
příkaz, ale zobrazí další pole.sar -u -f /var/log/sa/sa10
:Zobrazuje využití CPU pro desátý den v měsíci odsa10
soubor.
2. Zobrazení využití CPU podle CPU nebo jádra
Spuštěním následujícího příkazu zobrazíte využití CPU podle CPU nebo jádra:
sar -P ALL 1 1
-P ALL
příznak označuje, že chcete zobrazit statistiky pro všechna jednotlivá jádra.
V CPU
sloupec následujícího příkladu výstupu 0
, 1
, 2
a 3
jsou čísla jader CPU:
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
Pokud chcete zobrazit statistiky pouze pro druhé jádro, použijte -P 1
flag (protože čísla jádra začínají od 0), jak ukazuje následující příklad:
sar -P 1 1 1
Výstup vypadá jako následující příklad:
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
Mohou vám také pomoci následující varianty:
sar -P ALL
:Zobrazuje využití procesoru pro každé jádro za aktuální den.sar -P ALL 1 3
:Zobrazuje využití CPU každého jádra v reálném čase každou 1 sekundu po dobu 3.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 pro každé jádro pro desátý den v měsíci odsa10
soubor.
3. Zobrazení volné a použité paměti
Spusťte následující příkaz pro zobrazení volné a použité paměti:
sar -r
Pokud přidáte 1 3
k příkazu, jak je znázorněno v následujícím příkladu, výstup hlásí každou 1 sekundu celkem 3krát:
sar -r 1 3
Výstup vypadá jako následující příklad, ve kterémkbmemfree
je volná paměť a kbmemused
je použitá paměť:
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
Tento příkaz má následující varianty:
sar -r
sar -r 1 3
sar -r -f /var/log/sa/sa10
4. Zobrazit využití odkládacího prostoru
Spuštěním následujícího příkazu zobrazíte velikost odkládacího prostoru, který se používá:
sar -S
Pokud přidáte 1 3
do konce příkazu, jak je znázorněno v následujícím příkladu, výstup hlásí každou 1 sekundu celkem 3krát:
sar -S 1 3
Výstup je podobný následujícímu příkladu:
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
Poznámka :Pokud je kbswpused
a %swpused
jsou na 0
, pak se váš systém nevyměňuje.
Tento příkaz má následující varianty:
sar -S
sar -S 1 3
sar -S -f /var/log/sa/sa10
Další příkazy swap space
Užitečné mohou být také následující příkazy swap space:
- Použijte
sar -R
k identifikaci počtu stránek paměti, které systém uvolnil, použil a uložil do mezipaměti. - Použijte
sar -H
k identifikaci Linux® HugePages (v kilobajtech (KB)), které se používají a jsou k dispozici. - Použijte
sar -B
generovat statistiky stránkování, jako je počet KB odstránkovaných (a odchozích) z disku za sekundu. - Použijte
sar -W
ke generování statistik pro výměnu stránek, jako je výměna stránek za sekundu (a odchozí).
5. Zobrazení I/O aktivit
Spuštěním následujícího příkazu zobrazíte celkové vstupní a výstupní (I/O) aktivity:
sar -b
Výstup z tohoto příkazu zobrazí statistiku I/O. Pokud přidáte 1 3
do konce příkazu, jak je znázorněno v následujícím příkladu, výstup hlásí každou 1 sekundu celkem třikrát:
sar -b 1 3
Výstup vypadá jako následující příklad:
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
Výstup obsahuje následující pole:
tps
:Transakce za sekundu (čtení i zápis)rtps
:Čtení transakcí za sekunduwtps
:Zapisování transakcí za sekundubread/s
:Přečtené bajty za sekundubwrtn/s
:Zapsané bajty za sekundu
Tento příkaz má následující varianty:
sar -b
sar -b 1 3
sar -b -f /var/log/sa/sa10
Poznámka :Použijte sar -v
k zobrazení počtu obslužných rutin inodů, obslužných rutin souborů a pseudoterminálů, které systém používá.
6. Zobrazení I/O aktivit jednotlivých blokových zařízení
Spuštěním následujícího příkazu zobrazíte I/O aktivity jednotlivých blokových zařízení:
sar -d
Chcete-li identifikovat aktivity podle jednotlivých blokových zařízení (jako je konkrétní bod připojení, číslo logické jednotky (LUN) nebo oddíl), použijte sar -d
, jak ukazuje následující příklad:
sar -d 1 1
Výstup vypadá jako následující příklad:
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
V tomto příkladu hodnoty v DEV
představují 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.
Můžete použít pěkný tisk (-p
) příznak, jak je znázorněno v následujícím příkladu, aby se ve sloupci zobrazil skutečný název zařízení (například sda, sda1 nebo sdb1):
sar -p -d 1 1
Výstup vypadá jako následující příklad:
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
Tento příkaz má následující varianty:
sar -d
sar -d 1 3
sar -d -f /var/log/sa/sa10
sar -p -d
7. Zobrazit přepínač kontextu za sekundu
Spusťte následující příkaz pro zobrazení přepínače kontextu za sekundu:
sar -w
Tento příkaz hlásí celkový počet procesů vytvořených za sekundu a celkový počet přepnutí kontextu za sekundu. Pokud přidáte 1 3
do konce příkazu, jak je znázorněno v následujícím příkladu, hlásí každou 1 sekundu celkem třikrát:
sar -w 1 3
Výstup je podobný následujícímu příkladu:
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
Tento příkaz má následující varianty:
sar -w
sar -w 1 3
sar -w -f /var/log/sa/sa10
8. Zobrazit frontu běhu a průměr zatížení
Spuštěním následujícího příkazu zobrazíte frontu běhu a průměr zatížení:
sar -q
Tento příkaz hlásí velikost fronty běhu a průměr zatížení za poslední minutu, za posledních 5 minut a za posledních 15 minut. Pokud přidáte 1 3
do konce příkazu, jak je znázorněno v následujícím příkladu, hlásí každou 1 sekundu celkem 3krát:
sar -q 1 3
Výstup vypadá jako následující příklad:
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 :blocked
sloupec zobrazuje počet úloh, které jsou aktuálně blokovány a čekají na dokončení I/O operací.
Tento příkaz má následující varianty:
sar -q
sar -q 1 3
sar -q -f /var/log/sa/sa10
9. Zobrazit statistiky sítě
Spusťte následující příkaz pro zobrazení statistik sítě:
sar -n
Tento příkaz hlásí různé síťové statistiky, jako je počet paketů přijatých (vyslaných) přes síťovou kartu nebo počet selhání paketů, ke kterým došlo. Pokud přidáte 1 3
do konce příkazu hlásí každou 1 sekundu celkem 3x.
K příkazu můžete také přidat klíčové slovo, jak ukazuje následující příklad:
sar -n KEYWORD
KEYWORD
může být jedna z následujících možností:
DEV
:Zobrazuje důležité statistiky pro síťová zařízeníEDEV
:Zobrazení statistik selhání pro síťová zařízeníNFS
:Zobrazuje aktivity klienta Network File System (NFS)NFSD
:Zobrazí aktivity serveru NFSSOCK
:Zobrazí zásuvky, které se používají pro IPv4IP
:Zobrazuje síťový provoz IPv4EIP
:Zobrazí chyby sítě IPv4ICMP
:Zobrazuje síťový provoz ICMPv4EICMP
:Zobrazí chyby sítě ICMPv4TCP
:Zobrazí síťový provoz TCPv4ETCP
:Zobrazí chyby sítě TCPv4UDP
:Zobrazuje síťový provoz UDPv4SOCK6
,IP6
,EIP6
,ICMP6
aUDP6
:Zobrazí informace o síti IPv6ALL
:Zobrazí všechny předchozí informace
Následující příklad používá DEV
klíčové slovo:
sar -n DEV 1 1
Výstup vypadá jako následující příklad:
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 podle času zahájení
Spusťte následující příkaz pro nahlášení dat sar podle času zahájení:
sar -s
Když si prohlížíte historická data sar z /var/log/sa/saXX
pomocí sar -f
možnost, výstup zobrazí všechna data sar pro daný den počínaje 00:00
Můžete použít -s hh:mi:ss
možnost zadat čas zahájení. Pokud například zadáte sar -s 10:00:00
, výstup příkazu zobrazí sardata začínající v 10:00 (místo výchozí půlnoci).
Můžete kombinovat -s
vlajka s jinými sar vlajkami. Chcete-li například nahlásit průměrnou zátěž 26. dne aktuálního měsíce počínaje 10:00, zkombinujte -q
a -s
příznaky, jak je znázorněno v následujícím příkladu:
sar -q -f /var/log/sa/sa23 -s 10:00:01
Výstup vypadá jako následující příklad:
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
Nemůžete určit čas ukončení. Místo toho musíte použít head
příkaz. Chcete-li například začít od 10:00 a zobrazit 7 záznamů, přepojte předchozí výstup na head -n 10
, jak ukazuje následující příklad:
sar -q -f /var/log/sa/sa23 -s 10:00:01 | head -n 10
Výstup vypadá jako následující příklad:
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