Amióta van informatikai rendszer és üzemeltetése azóta ismeretes az a kifejezés, hogy szűk keresztmetszet vagy angolul “bottleneck”. Azt kideríteni, hogy miért és hol adódik a probléma, ami miatt “lassú” az alkalmazás. Természetesen sok rendszer szintű és külön telepítendő tool állhat rendelkezésünkre, mégis a legtöbb, millió számot, értéket tartalmaz, és halandó embernek nem könnyű átlátni. Ezért Linux/Unix rendszereken létrejött egy egységes mintavételező és szövegesen feldolgozó tool a SAR (System Activity Report).

SAR installálása Solaris

Solaris alatt a SUNWaccu és SUNWaccr csomagoknak kell telepítve lennie. Ha ez nem lenne meg, akkor az install médián kell keresni.

Ezek után tudnunk kell, hogy a SAR mintavételezéssel dolgozik. Ezért a SAR mintavételezési scriptjeit a CRON-ba megfelelő képp időzítenünk kell. Íme egy ajánlott példa amit root-ként kell a crontabba rögzítenünk :

# Collect measurements at 10-minute intervals
0,10,20,30,40,50 * * * * /usr/lib/sa/sa1
# Create daily reports and purge old files
0 0 * * * /usr/lib/sa/sa2 -A

Az első bejegyzés a tényleges mintavételezésért felel, míg a második ezen adatok kiértékeléséért és a report “data file” létrehozásáért.

Simán a sar parancs segítségével kérhetünk szöveges kiértékelést a mérőpontok alapján.

# sar

A következő kapcsolók segítségével meghatározott mérési paraméterek adhatóak meg:

    -a: Reports file system access statistics.
    -A: Reports all data.
    -c: System call reporter:
    -d: Disk activity (actually, block device activity):
    -e HH:MM: CPU useage up to time specified.
    -f filename: Use filename as the source for the binary sar data.
    -g: Paging activity (see “Paging” for more details):
    -i sec: Set the data collection interval to i seconds.
    -k: Kernel memory allocation:
    -m: Message and semaphore activities.
    -o filename: Saves output to filename.
    -p: Paging activities.
    -q: Run queue length and percentage of the time that the run queue is occupied.
    -r: Unused memory pages and disk blocks.
    -s time: Start looking at data from time onward.
    -u: CPU utilization.
    -v: Status of process, inode, file tables.
    -w: System swapping and switching activity.
    -y: TTY device activity.

(Linux esetében a sysstat csomag tartalmazza a SAR-t.)

KSAR és a grafikus kiértékelés

A sar parancs maga nem csinál mást, mint szövegesen feldolgozza a mérési pontok által összegyűlt adatokat és azokat hosszú sorokba és számokba foglalja. Ahogy fent jól látszik, rengeteg számot és flaget használva lehet csak teljesen átfogó elemzést adni egy gép aktivitásáról.

Ha valaki szép színes szagos diagrammos prezentációt szeretne belőle, akkor jön a copy-zgatás, és az exceles trükkök. Ez a halála az informatikusoknak.

Mint mindig most is van egyszerű és ingyenes megoldás. Ez pedig a KSAR. Ez java alpú, tehát minden java futtató környezettel (jre) rendelkező számítógépen futtatható. A kis grafikus tool alapvetően három feldolgozási módot ismer:

A KSAR minden esetben egy “sar -A” szöveges kimenetet vár, aminek kinyerésére három megoldást is kínál. Amennyiben offline formában, egy szöveges file-t kívánunk betölteni, úgy figyeljünk arra, hogy a következő parancs segítségével generáljuk azt ki, különben lehetnek feldolgozási problémái majd a KSAR-nak.

# LC_ALL=C /usr/bin/sar -A > /home/miszterx/sar`date ‘+%d’`

Értelemszerűen a létrehozandó file path-a tetszőleges lehet, a file nevére viszont érzékeny a KSAR.

Ezt ezek után felmásoljuk arra a gépre, amelyiken fel szeretnénk dolgozni, és betöltjük.

A második mód sokkal izgalmasabb, mert a KSAR képes arra, hogy amennyiben lehetőség van a direkt SSH kapcsolatra, akkor be SSH-zon, és a szükséges data file-t maga generálja ki. Tehát semmilyen parancs kiadása nem szükséges, csak megnyitni a saját gépünkön a KSAR-t, meghívni ezt a menüpontot, majd megadni azt, hogy milyen néven, és hova akarunk bejutni, majd a jelszót. Ezek után ha telepítve van a SAR és be is van időzítve, akkor automatikusan generálódni fognak az adatok.

A harmadik lehetőség pedig ha egy helyi parancs segítségével akarjuk előállítani ezen információkat. Ez akkor lehet érdekes ha a KSAR azon a gépen futtatjuk, amelyiket elemezni szeretnénk.

Ha valamelyik módon betöltöttük a megfelelő adatokat, és azt a KSAR fel is tudta dolgozni, akkor a következő képernyőt kell látnunk:

Ahogy láthatjuk az importálás sikeres volt, és minden féle adatot megtudunk ezek után arról, hogy milyen gépről, milyen időintervallumban áll rendelkezésünkre adat. Ezen túl a külön információ típusok a bal oldali menüben mint egyes menüpontok lesznek elérhetőek.

Ha bármelyiket kiválasztjuk, akkor a mérhető paraméterek által minden információ szép színes ábrákon fog megjelenni. Ha pontosítani akarjuk azt az intervallumot amit elemezni akarunk, akkor természetesen van rá lehetőség. Menjünk a DATA/Select time range menüpontba és a mérőpontok közül válasszuk ki melyikek közötti adatokra vagyunk csak kíváncsiak.

Exportálás

Most már csak az maradt hátra, hogy a management (vagy más hozzá nem értő ember számára) ezt kézzelfoghatóvá tegyük. A KSAR szöveges/táblázatos exportálást, a különböző diagramok egyesével történő mentését, és az egész reportot egy PDF-be mentését is támogatja.

Itt megtekinthető egy példa pdf az én tesztemről.

Végszó

A sar és a ksar együtt egy nagyon nagy segítség tud lenni minden Linux/Unix platform üzemeltetője számára. Mindkét program ingyenes, és használatuk pofon egyszerű.

Íme a támogatott platformok:

  • Solaris 8, 9 and 10 (SAR és ESAR)
  • Mac OS/X 10.4+
  • Linux (Systat Version >= 5.0.5)
  • AIX (4.3 & 5.3)
  • HPUX 11.00+

A KSAR hivatalos oldala, rengeteg példával, fórummal, és minden nyalánksággal elérhető itt.