System Activity Reporter je důležitý nástroj, který pomáhá správcům systému získat přehled o serverovém stroji se stavem různých důležitých metrik v různých časových okamžicích.
Předpokládejme, že máte v současné době problém se systémem, například někteří vaši zákazníci nemohou vypsat některá data z databáze. První věc, kterou většina správců linuxových systémů udělá, je, že si vzpomene na stejný problém, když se vyskytl dříve, a Pokud si pamatujete den jeho předchozího výskytu, pak můžete snadno porovnat interní statistiky systému s aktuálními statistikami.
Přesně s tím vám velmi pomůže nástroj SAR.
První věc, kterou musíme udělat, je zkontrolovat a potvrdit, zda máte v počítači nainstalovaný nástroj SAR. Což lze ověřit výpisem všech rpm a vyhledáním tohoto nástroje.
SAR je jedním z nástrojů uvnitř sysstatu. Můžete si ji snadno stáhnout a nainstalovat do svého počítače velmi snadno prostřednictvím YUM. (Ale ano, nebojte se, protože většina distribucí je dodávána s předpřipraveným nástrojem sysstat).
# yum install sysstat
Jo, ale ujistěte se, že máte povoleno úložiště epel,rpmformge pro instalaci. V opačném případě bude vaše distribuční DVD pěkným místem pro hledání balíčku.
SAR (System Activity Reporter) poskytne informace o následujících věcech:
- Aktivita systémové vyrovnávací paměti
- Informace o systémových voláních
- Informace o blokových zařízeních
- Informace o celkovém stránkování
- Informace o maphore a alokaci paměti
- Využití CPU a zpráva o procesech
Hlavní věc, kterou musíme pochopit ohledně SAR je, že, vše se provádí pomocí cronu. Ve výchozím nastavení v mnoha linuxových distribucích budete mít soubor s názvem /etc/cron.d/sysstat.
Podívejme se, jak skutečně SAR funguje.
Pokud začneme uvažovat o monitorování systému, pak musí mít nástroj k dispozici všechny údaje o různých aspektech systému a musí pokrývat všechny časové intervaly. Což znamená, že monitorovací systém musí být schopen poskytnout statistiky stroje za daný časový interval.
Není jiná možnost, než vzít všechny metriky a statistiky stroje v určitém časovém intervalu. Zkrácením časového intervalu pro sběr statistik zvýšíme množství podrobných statistik, které máme k dispozici(protože budeme mít více údajů o systému).
SAR dělá přesně to. sar bere statistiky různých aspektů stroje v určitém časovém intervalu. SAR tedy běží přes CRON.
# cat /etc/cron.d/sysstat# spouští nástroj pro účtování činnosti systému každých 10 minut*/10 * * * * root /usr/lib64/sa/sa1 1 1# generuje denní přehled účtování procesů ve 23. minutě:5353 23 * * * root /usr/lib64/sa/sa2 -A
- Z výše uvedeného souboru cron pro SAR je tedy patrné, že jeho skript „sa1“ umístěný na adrese „/usr/lib64/sa/“ se spouští každých 10 minut
- A na konci dne kolem 23. hodiny se spouští také skript /usr/lib64/sa/sa2.53
Takže první položka cronu pro SAR(/usr/lib64/sa/sa1) se spustí každých 10 minut, což zavolá utilitu sadc, která shromáždí systémové statistiky a uloží je do binárního souboru (jeden soubor za den)
A druhá položka cronu vypíše celý obsah tohoto binárního souboru do jiného textového souboru, a vyčistí data starší než určitý počet dní, ve výchozím nastavení obvykle 7 dní(což je uvedeno v následujícím souboru),
# cat /etc/sysconfig/sysstat# Jak dlouho se mají uchovávat soubory protokolu (dny), maximum je měsícHISTORY=7
Takže tuto položku HISTORY můžete snadno změnit úpravou souboru.
Takže i když se systémové statistiky shromažďují každých 10 minut prostřednictvím cronu(upravte cron tak, aby se spouštěl každou 1 minutu pro přesnější informace) Pokud chcete vidět statistiky, pak musíte spustit příkaz, jak je uvedeno níže.
Jednoduchý výstup příkazu sar je uveden níže.
12:00:01 AM CPU %user %nice %system %iowait %steal %idle12:01:01 AM all 73.28 0.00 1.25 0.00 0.00 25.4712:02:01 AM all 7.83 0.00 0.44 0.00 0.00 91.7312:03:01 AM všichni 61.65 0.00 0.70 0.00 0.00 37.6612:04:01 AM všichni 57.85 0.00 0.82 0.00 0.00 41.3412:05:01 AM všichni 4.25 0.00 0.41 0.00 0.00 95.3412:06:01 AM všichni 4.20 0.00 0.22 0.00 0.00 95.5812:07:01 AM všichni 5.05 0.00 0.33 0.00 0.00 94.6312:08:01 AM všichni 4.76 0.00 0.06 0.00 0.00 95.1812:09:01 AM všichni 37.57 0.00 0.37 0.00 0.00 62.0512:10:01 všechny 70.04 0.00 0.80 0.00 0.00 29.1612:11:01 všechny 5.03 0.00 0.12 0.00 0.00 94.84
Z výstupu je vidět, že mi hlásí výstup nasbíraných statistik za každou minutu(což znamená, že mám cron v intervalu 1 minuty) a zobrazí detaily za celý den(nebo zobrazí detaily nasbírané do doby zadání příkazu).
Podle výstupu příkazu SAR
%user: Zobrazuje celkový čas, který procesor stráví různými procesy YCX5UKN5ZKEJ
%sys: zobrazuje procento času, které procesor stráví úlohami operačního systému(protože předchozí user zobrazuje čas strávený procesem na konci uživatele)
%iowait: samotný název iowait naznačuje, že jde o čas strávený procesorem čekáním na zařízení(vstup a výstup)
%nice: Většina z vás jistě ví, že uživatel může změnit prioritu procesu v Linuxu změnou hodnoty nice v Linuxu. Tato tabulka ukazuje čas strávený procesorem pro proces, jehož hodnota nice byla změněna.
%steal: Tento sloupec ukazuje množství času stráveného procesorem (který je virtualizovaný), pro zdroje z fyzického procesoru
%idle: To naznačuje čas nečinnosti strávený procesorem.
Ve výchozím nastavení sar ukládá všechna svá data do /var/log/sa/ a dny jsou pojmenovány, jak je uvedeno níže.
s01 – pro první den v měsíci
s02-pro druhý den v měsíci
s03,s04..a tak dále.
volba-d v příkazu SAR
Tuto volbu -d lze použít pro hlášení každé činnosti související s různými zařízeními připojenými k systému(bloková zařízení). Typický výstup příkazu sar s volbou -d je uveden níže.
12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12:01:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:01:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 012:01:01 AM dev8-0 55.62 9.98 8317.87 149.72 13.68 245.96 2.61 14.5212:01:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev8-0 1.55 0.00 35.29 22.70 0.01 7.26 1.86 0.2912:02:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
DEV: tento sloupec pojmenovává zařízení na počítači podle major a minor čísla linuxového blokového zařízení. Můžete to zkontrolovat provedením příkazu ls -l v adresáři /dev. jak je uvedeno níže.
brw-r----- 1 kořenový disk 8, 0 16. 11. 16:29 sdabrw-r----- 1 kořenový disk 8, 1 16. 11. 16:29 sda1brw-r----- 1 kořenový disk 8, 2 16. 11. 16:29 sda2
ve výše zobrazeném výstupu „ls -l“ pro „sda“ je major číslo „8“,a minor číslo „0“.. takže můžete snadno identifikovat disk uvedený ve výstupu příkazu sar.
tps: tps znamená přenos za sekundu, takže ukazuje přenos za sekundu na daném zařízení
rd_sec/s: ukazuje celkový počet sektorů na daném zařízení, které se čtou
wr_sec/s: jestliže rd_sec/s jsou sektory čtené za sekundu, pak je zřejmé, že wr_sec jsou sektory zapisované za sekundu.
avgrq-sz: tento sloupec ukazuje průměr.
await: ukazuje celkový počet časů, po které procesor čekal na požadavky týkající se IO
%util: tento sloupec ukazuje využití cpu v procentech při generování požadavku
Zobrazení využití paměti v příkazu SAR
volba -r dostupná v příkazu sar je velmi užitečná. Zobrazuje paměť,swap,paměť mezipaměti atd. v každém intervalu nebo požadovaném časovém intervalu.
02:20:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad02:30:01 AM 609500 1487652 70. Jaký je stav paměti?94 242420 777560 1075980 364 0.03 36002:40:01 AM 609500 1487652 70.94 242424 777568 1075980 364 0.03 36002:50:01 AM 609500 1487652 70.94 242424 777592 1075980 364 0.03 36003:00:01 AM 608980 1488172 70.96 242424 777600 1075980 364 0.03 36003:10:01 AM 608584 1488568 70.98 242424 777628 1075980 364 0.03 36003:20:01 AM 608584 1488568 70.98 242424 777648 1075980 364 0.03 360
Jak načíst metriky konkrétního dne pomocí SAR v Linuxu
# sar -f /var/log/sa/sa27Linux 2.6.18-194.el5xen (archive.r) 27.11.2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM všichni 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM všichni 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM všichni 3.27 0.00 0.71 1.12 0.04 94.86
Jak získat metriky SAR pro konkrétní čas v určitý den
toho lze dosáhnout předáním dalšího argumentu, jak je uvedeno níže.
# sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00Linux 2.6.18-194.el5xen (archive.r) 27.11.2012 02:20:01 CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2. Jaké jsou výsledky měření?58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.8603:10:01 všechny 2,72 1,06 0,75 1,09 0,04 94,33Průměr: všechny 2,76 0,21 0,70 1,11 0,04 95.18
Zobrazení síťových statistik pomocí příkazu sar
Příkaz sar zobrazí i síťové statistiky. To lze provést pomocí volby -n DEV v příkazu sar.
# sar -n DEVLinux 2.6.18-194.el5xen (archiv.r) 27.11.2012 02:20:01 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s02:30:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:30:01 AM eth0 12.30 0.12 1285.06 27.59 0.00 0.00 0.0002:30:01 AM eth1 14.45 0.00 1399.34 0.00 0.00 0.00 0.00 0.0002:30:01 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0002:40:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:40:01 AM eth0 10.65 0.12 1139.38 27.00 0.00 0.00 0.00 0.0002:40:01 AM eth1 13.96 0.00 1352.87 0.00 0.00 0.00 0.00
IFACE: znamená název rozhraní karty nic
rxpck/s: zobrazuje celkový počet přijatých paketů za sekundu
txpck/s:přenesené pakety za sekundu
rxcmp/s: komprimované přijaté pakety
txcmp/s: komprimované přenesené pakety
rxmcst/s: pakety multicasted za sekundu.
Některé další metriky, které lze zjistit pomocí sar
-y volba v sar: lze použít pro zjištění podrobností o tty
-X volba v sar pro získání podrobností o konkrétním procesu. Jako argument této volby je třeba předat pid.
-n Volba SOCK v sar: tato volba sdělí všechny podrobnosti o socketu.