Příklady použití příkazu SAR pro monitorování systému v Linuxu

, Author

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 sysstatsmiley).

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

  1. Aktivita systémové vyrovnávací paměti
  2. Informace o systémových voláních
  3. Informace o blokových zařízeních
  4. Informace o celkovém stránkování
  5. Informace o maphore a alokaci paměti
  6. 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

ve výše uvedeném výstupu se většina sloupců vysvětluje sama(a většina výstupů je v KB).
kbmemfree: ukazuje množství volné paměti
Kbmemused: použitá paměť
%memused: procento použité paměti
kbbuffers: vyrovnávací paměť používaná jádrem.
kbcached: paměť cache používaná jádrem
všechny ostatní položky pro paměť jsou swap(free,used,percentage atd.)

Jak načíst metriky konkrétního dne pomocí SAR v Linuxu

Jak již bylo zmíněno, všechny metriky pro konkrétní den jsou uloženy v sa<den měsíce>. Pokud tedy chci zjistit metriky pro 27. den v měsíci, mohu to snadno zjistit, jak je uvedeno níže.
# 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
ve výše uvedeném příkazu jsme jako argument předali /var/log/sa/sa27, protože jsem potřeboval statistiky pro tento den..předejte sa<den v měsíci>jak požadujete ve výše uvedeném příkazu

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
Ve výše uvedeném příkladu jsem požádal sar o načtení metrik mezi 2:20:00 a 3:20:00 27. dne v měsíci
Můžete dokonce předat jakoukoli jinou možnost metriky spolu s časovým intervalem… například -d nebo -r
Všimli jste si ? SAR nám dokáže přesně zobrazit statistiky stroje za určitý den v určitém čase…takže je mnohem snazší identifikovat úzká místa.
Použitím volby -A spolu s výše uvedeným příkazem se zobrazí ALL (všechny metriky shromážděné příkazem sar).
sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00 -A
Výstup bude propracovaný. a z této volby -A se vám na obrazovce zobrazí téměř vše, co je v sar!“

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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.