Példák a SAR parancs használatára a Linux rendszerfelügyelethez

, Author

A System Activity Reporter egy fontos eszköz, amely segít a rendszergazdáknak abban, hogy áttekintést kapjanak a szervergép állapotáról a különböző fontos mérőszámok állapotával a különböző időpontokban.

Ha feltételezzük, hogy jelenleg problémája van a rendszerrel, például néhány ügyfél nem tud listázni bizonyos adatokat az adatbázisból. Az első dolog, amit a legtöbb Linux rendszergazda tesz, hogy felidézi ugyanazt a problémát, amikor korábban előfordult, és ha emlékszik a korábbi előfordulás napjára, akkor könnyen összehasonlíthatja a belső rendszer statisztikáit az aktuális statisztikákkal.

A SAR nagyon sokat segít pontosan ebben.

Az első dolog, amit tennünk kell, hogy ellenőrizzük és megerősítjük, hogy telepítve van-e a SAR segédprogram a gépen. Amit az összes rpm listázásával és a segédprogram keresésével ellenőrizhetünk.

A SAR az egyik segédprogram a sysstat-on belül. Könnyen letöltheti és telepítheti a gépére nagyon egyszerűen a YUM segítségével. (But yeah dont worry because most of the distribution comes prepacked with sysstat toolsmiley).

# yum install sysstat

Yeah but make it sure that you have epel,rpmformge repository enabled for installing. Egyébként a disztribúciós DVD-den szépen keresgélheted a csomagot.

A SAR (System Activity Reporter) a következő dolgokról ad információt:

  1. System Buffer activity
  2. Information about system calls
  3. Block device information
  4. Overall paging information
  5. Semaphore and memory allocation information
  6. CPU utilization and process report

A legfontosabb dolog, amit a SAR kapcsán meg kell értenünk, hogy, minden egy cron segítségével történik. Alapértelmezés szerint sok Linux disztribúcióban van egy /etc/cron.d/sysstat nevű fájl.

Lássuk, hogyan is működik valójában a SAR.

Ha elkezdünk rendszerfigyelésben gondolkodni, akkor az eszköznek rendelkeznie kell minden egyes adattal a rendszer különböző aspektusairól, és le kell fednie minden időintervallumot. Ami azt jelenti, hogy egy felügyeleti rendszernek képesnek kell lennie arra, hogy a gép statisztikáit egy adott időintervallumra vonatkozóan megadja.

Nincs más lehetőség, mint a gép összes metrikáját és statisztikáját egy meghatározott időintervallumban felvenni. A statisztikák gyűjtésének időintervallumának csökkentése növeli a részletes statisztikák mennyiségét(mert több adatunk lesz a rendszerről).

A SAR pontosan ezt teszi. sar a gép különböző aspektusainak statisztikáit veszi fel egy meghatározott időintervallumban. Tehát a SAR a CRON-on keresztül fut.

# cat /etc/cron.d/sysstat# rendszeraktivitás-nyilvántartó eszköz futtatása 10 percenként*/10 * * * * * * * root /usr/lib64/sa/sa1 1 1# napi összefoglalót készít a folyamatok nyilvántartásáról 23 órakor:5353 23 * * * * root /usr/lib64/sa/sa2 -A

  • A fenti SAR cron fájlból látható, hogy a “/usr/lib64/sa/”-ban található “sa1” szkript 10 percenként fut
  • És a nap végén, 23 óra körül a /usr/lib64/sa/sa2 szkript is fut.53

Az első cron bejegyzés a SAR-hoz(/usr/lib64/sa/sa1) 10 percenként fog futni, ami viszont meghívja a sadc segédprogramot, hogy összegyűjtse a rendszer statisztikáit és egy bináris fájlban tárolja (egy fájl egy napra)

A második cron bejegyzés pedig a bináris fájl teljes tartalmát egy másik szöveges fájlba dobja, és kitisztítja a meghatározott számú napnál régebbi adatokat, alapértelmezés szerint általában 7 napot (ami a következő fájlban szerepel),

# cat /etc/sysconfig/sysstat# Mennyi ideig kell tárolni a naplófájlokat (napokban), a maximum egy hónapHISTORY=7

A HISTORY bejegyzést tehát könnyen módosíthatja a fájl szerkesztésével.

Szóval, bár a rendszerstatisztikákat 10 percenként gyűjti a cron (módosítsa a cron-t úgy, hogy 1 percenként fusson a pontosabb információkhoz) Ha látni akarja a statisztikákat, akkor az alábbi parancsot kell futtatnia.

Az egyszerű sar parancs kimenete az alábbiakban látható.

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 mind 61.65 0.00 0.70 0.00 0.00 37.6612:04:01 AM mind 57.85 0.00 0.82 0.00 0.00 41.3412:05:01 AM mind 4.25 0.00 0.41 0.00 0.00 0.00 95.3412:06:01 AM mind 4.20 0.00 0.22 0.00 0.00 0.00 95.5812:07:01 AM mind 5.05 0.00 0.33 0.00 0.00 94.6312:08:01 AM mind 4.76 0.00 0.06 0.00 0.00 0.00 95.1812:09:01 AM mind 37.57 0.00 0.37 0.00 0.00 0.00 62.0512:10:01 AM mind 70.04 0.00 0.80 0.00 0.00 0.00 29.1612:11:01 AM mind 5.03 0.00 0.12 0.00 0.00 0.00 94.84

A kimenetből látható, hogy a kimenet percenként jelenti nekem az összegyűjtött statisztikák kimenetét(ami azt jelenti, hogy a cronom 1 perces intervallumban van), és megmutatja az egész nap adatait(vagy megmutatja a parancs beírásáig összegyűjtött adatokat).

A SAR parancs kimenetének megértése

%user: YCX5UKN5ZKEJ

%sys: Ez a processzor által az operációs rendszer feladataira fordított idő százalékos arányát mutatja(mert az előző user a felhasználó végi folyamatokra fordított időt mutatja)

%iowait: A neve iowait önmagában azt sugallja, hogy a processzor által az eszközökre(input és output)

%nice: A legtöbbetek bizonyára tudja, hogy a felhasználó a Linuxban a nice érték megváltoztatásával megváltoztathatja egy folyamat prioritását. Ez a táblázat azt mutatja, hogy mennyi időt töltött a CPU azon folyamatok esetében, amelyek nice értékét megváltoztattuk.

%steal:

%idle: Ez a processzor által eltöltött üresjárati időt mutatja.

Alapértelmezés szerint a sar minden adatát a /var/log/sa/ alatt tárolja, és a napok neve az alábbiakban látható.

s01 – a hónap első napjára

s02 – a hónap második napjára

s03,s04..és így tovább.

-d opció a SAR parancsban

Ez a -d opció használható a rendszerhez csatlakoztatott különböző eszközökkel (blokkeszközök) kapcsolatos minden egyes tevékenység jelentésére. A sar parancs tipikus kimenete a -d opcióval az alábbiakban látható.

12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12:01:01:01 AM dev3-0 0.00 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 12: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.00 0.00 12: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.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.00 0.00 0.00 12:03:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

DEV: ez az oszlop a gépen lévő eszközöket nevezi meg, egy Linux blokkeszköz major és minor számai szerint. Ezt a /dev könyvtárban egy ls -l művelettel ellenőrizheti. az alábbiak szerint.

brw-r----- 1 root disk 8, 0 Nov 16 16:29 sdabrw-r----- 1 root disk 8, 1 Nov 16 16:29 sda1brw-r----- 1 root disk 8, 2 Nov 16 16:29 sda2

a fent látható “ls -l” oututban az “sda” esetében a major szám “8”,a minor szám pedig “0”…Így könnyen beazonosíthatja a sar parancs kimenetén említett lemezt.

tps: a tps a másodpercenkénti átvitelt jelenti, tehát a másodpercenkénti átvitelt mutatja az adott eszközön

rd_sec/s: ez mutatja az adott eszközön olvasott szektorok számát

wr_sec/s: ha az rd_sec/s a másodpercenként olvasott szektorokat jelenti, akkor a wr_sec a másodpercenként írt szektorokat.

avgrq-sz: ez az oszlop az átlagot mutatja.

await: ez azt mutatja, hogy a processzor összesen mennyi időt várt az IO-val kapcsolatos kérésekre

%util: ez az oszlop a cpu használatát mutatja százalékban, amikor a kérés létrejött

Show Memory usage in SAR command

a sar parancsban elérhető -r opció nagyon hasznos. ez megmutatja a memóriát,swap,cache memóriát stb. minden intervallumban vagy kívánt időintervallumban.

02:20:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad02:30:01 AM 609500 1487652 70.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

A fenti kimeneten a legtöbb oszlop magától értetődő (és a legtöbb kimenet KB-ban van).
kbmemfree: ez a szabad memória mennyiségét mutatja
Kbmemused: használt memória
%memused: a használt memória százalékos aránya
kbbuffers: a kernel által használt puffer memória.
kbcached: a kernel által használt cache memória
minden más memória bejegyzés swap(free,used,percentage stb)

How to fetch metrics of a particular day using SAR in linux

Amint már említettük, egy adott nap összes metrikus adatát sa<day of month> wise tárolja. Tehát ha a hónap 27. napjának metrikáit szeretném megtudni, akkor az alábbiak szerint könnyen megtalálom.
# sar -f /var/log/sa/sa/sa27Linux 2.6.18-194.el5xen (archive.r) 11/27/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 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.86
A fenti parancsban a /var/log/sa/sa/sa27-et adtuk meg argumentumként, mivel szükségem volt az adott nap statisztikáira..adja át a sa<hónap>napját>mint amire a fenti parancsban szüksége van

Hogyan lehet lekérni a SAR mérőszámokat egy adott időpontra egy adott napon

ez egy másik argumentum átadásával érhető el, ahogy az alább látható.

# sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00Linux 2.6.18-194.el5xen (archive.r) 11/27/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 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 AM minden 2.72 1.06 0.75 1.09 0.04 94.33 Átlag: minden 2.76 0.21 0.70 1.11 0.04 95.18
A fent látható példában azt kértem a sar-tól, hogy a hónap 27. napján 2:20:00 és 3:20:00 közötti metrikákat kérje le
Az időintervallummal együtt bármilyen más metrika opciót is megadhat…például -d vagy -r
Észrevetted ? A SAR pontosan meg tudja mutatni nekünk egy adott nap gépi statisztikáit egy adott időpontban…így sokkal könnyebb azonosítani a szűk keresztmetrikákat.
A -A opció használata a fenti paranccsal együtt MINDENT (a sar által gyűjtött összes metrikát) megmutatja.
sar -f /var/log/sa/sa/sa27 -s 02:20:00 -e 03:20:00 -A
A kimenet kidolgozott lesz. és szinte mindent megkapsz a sar-ból, amit a -A opcióval a képernyődön!

Show network statistics using sar command

sar command even shows network statistics. Ezt a sar parancsban a -n DEV opció használatával érhetjük el.

# sar -n DEVLinux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s02:30:01 AM lo 0.01 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.00 0.0002:30:01 AM eth1 14.45 0.00 1399.34 0.00 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.0002:40:01 AM lo 0.01 0.01 0.01 0.77 0.77 0.00 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: a nic kártya interfész nevét jelenti

rxpck/s: ez mutatja a másodpercenként fogadott összes csomagot

txpck/s:másodpercenként továbbított csomagok

rxcmp/s: fogadott tömörített csomagok

txcmp/s: továbbított tömörített csomagok

rxmcst/s: másodpercenként multicast csomagok.

Egyéb metrikák, amelyek a sar segítségével meghatározhatók

-y opció a sar-ban: használható a tty részletek meghatározására

-X opció a sar-ban egy adott folyamat részleteinek lekérdezésére. Ehhez az opcióhoz a pid-et kell átadni argumentumként.

-n SOCK opció a sar-ban: ez az opció minden socket adatot jelent.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.