Exemple de utilizare a comenzii SAR pentru monitorizarea sistemului în Linux

, Author

System Activity Reporter este un instrument important care îi ajută pe administratorii de sistem să obțină o imagine de ansamblu a mașinii server cu starea diferiților parametri importanți în diferite momente de timp.

Dacă presupunem că aveți o problemă cu sistemul în prezent, cum ar fi faptul că unii dintre clienții dvs. nu pot lista unele date din baza de date. Primul lucru pe care majoritatea administratorilor de sistem Linux îl fac este să își amintească aceeași problemă atunci când a apărut anterior, iar dacă vă amintiți ziua în care a apărut anterior, atunci puteți compara cu ușurință statisticile interne ale sistemului cu statisticile actuale.

SAR este foarte util pentru a face exact acest lucru.

Primul lucru pe care trebuie să îl facem este să verificăm și să confirmăm dacă aveți utilitarul SAR instalat pe mașină. Ceea ce poate fi verificat prin listarea tuturor rpm-urilor și găsirea acestui utilitar.

SAR este unul dintre utilitarii din cadrul sysstat. Puteți să îl descărcați și să îl instalați foarte ușor în mașina dumneavoastră prin YUM. (Dar da, nu vă faceți griji pentru că majoritatea distribuțiilor vin preambalate cu instrumentul sysstatsmiley).

# yum install sysstat

Da, dar asigurați-vă că aveți depozitul epel,rpmformge activat pentru instalare. În caz contrar, DVD-ul de distribuție va fi un loc bun pentru a căuta pachetul.

SAR (System Activity Reporter) va da informații despre următoarele lucruri:

  1. Activitatea bufferului de sistem
  2. Informații despre apelurile de sistem
  3. Informații despre dispozitivele de blocare
  4. Informații generale de paginare
  5. Informații despre memoria semaforizată și alocarea memoriei
  6. Raportul de utilizare a PCU și a proceselor

Cel mai important lucru pe care trebuie să-l înțelegem în ceea ce privește SAR este că, totul se face folosind un cron. În mod implicit, în multe distribuții Linux veți avea un fișier numit /etc/cron.d/sysstat.

Să vedem cum funcționează cu adevărat SAR.

Dacă începem să ne gândim la monitorizarea sistemului, atunci instrumentul trebuie să aibă toate datele despre diferitele aspecte ale sistemului și trebuie să acopere toate intervalele de timp. Ceea ce înseamnă că un sistem de monitorizare trebuie să fie capabil să furnizeze statisticile mașinii pentru un anumit interval de timp.

Nu există nicio altă modalitate, în afară de a lua toate metricile și statisticile mașinii la un anumit interval de timp. Reducerea intervalului de timp pentru colectarea statisticilor va crește cantitatea de statistici detaliate pe care le avem(pentru că vom avea mai multe date despre sistem).

SAR face exact acest lucru. sar preia statisticile diferitelor aspecte ale mașinii la un interval de timp definit. Așadar, SAR rulează prin CRON.

# cat /etc/cron.d/sysstat# rulează instrumentul de contabilizare a activității sistemului la fiecare 10 minute*/10 * * * * * * root /usr/lib64/sa/sa1 1 1# generează un rezumat zilnic al contabilizării proceselor la 23:5353 23 * * * * * root /usr/lib64/sa/sa2 -A
  • Atunci se poate observa din fișierul cron de mai sus pentru SAR că rulează scriptul „sa1” localizat la „/usr/lib64/sa/” la fiecare 10 minute
  • Și rulează de asemenea un script /usr/lib64/sa/sa/sa2 la sfârșitul zilei în jurul orei 23.53

Atunci prima intrare cron pentru SAR(/usr/lib64/sa/sa1) va rula la fiecare 10 minute care, la rândul său, va apela utilitarul sadc pentru a colecta statisticile de sistem și le va stoca într-un fișier binar (un fișier pentru o zi)

Și a doua intrare cron va descărca tot conținutul acelui fișier binar într-un alt fișier text, și curăță datele mai vechi de un anumit număr de zile, în mod normal 7 zile în mod implicit(care este menționat în următorul fișier),

# cat /etc/sysconfig/sysstat# Cât timp se păstrează fișierele jurnal (zile), maximul este o lunăHISTORY=7

Așa că puteți modifica ușor acea intrare HISTORY prin editarea fișierului.

Așa că, deși statisticile sistemului sunt colectate la fiecare 10 minute prin cron (modificați cronul pentru a rula la fiecare 1 minut pentru informații mai precise) Dacă doriți să vedeți statisticile, atunci trebuie să rulați comanda de mai jos.

Lovitura simplă a comenzii sar este așa cum se arată mai jos.

12:00:01 AM CPU %utilizator %nice %sistem %iowait %steal %idle12:01:01 AM all 73.28 0.00 1.25 0.00 0.00 0.00 25.4712:02:01 AM all 7.83 0.00 0.00 0.44 0.00 0.00 0.00 91.7312:03:01 AM toate 61.65 0.00 0.70 0.00 0.00 0.00 37.6612:04:01 AM toate 57.85 0.00 0.82 0.00 0.00 0.00 41.3412:05:01 AM toate 4.25 0.00 0.41 0.00 0.00 0.00 95.3412:06:01 AM toate 4.25 0.00 0.41 0.00 0.00 95.3412:06:01 AM toate 4.20 0.00 0.22 0.00 0.00 0.00 95.5812:07:01 AM toate 5.05 0.00 0.33 0.00 0.00 0.00 94.6312:08:01 AM toate 4.76 0.00 0.06 0.00 0.00 0.00 95.1812:09:01 AM toate 37.57 0.00 0.37 0.00 0.00 0.00 62.0512:10:01 AM toate 70.04 0.00 0.80 0.00 0.00 0.00 29.1612:11:01 AM toate 5.03 0.00 0.12 0.00 0.00 0.00 94.84

Se poate observa din ieșire că îmi raportează ieșirea statisticilor colectate pentru fiecare minut (ceea ce înseamnă că am cronul meu la interval de 1 minut), și va afișa detaliile întregii zile (sau va afișa detaliile colectate până în momentul în care ai tastat comanda).

Înțelegând ieșirea comenzii SAR

%user: Aceasta arată timpul total pe care procesorul îl petrece pe diferite procese YCX5UKN5ZKEJ

%sys: Aceasta arată procentul de timp petrecut de procesor pentru sarcinile sistemului de operare(deoarece user anterior arată timpul petrecut pentru procesul final al utilizatorului)

%iowait: Numele însuși iowait sugerează că este timpul petrecut de procesor în așteptarea dispozitivelor(intrare și ieșire)

%nice: Cei mai mulți dintre voi trebuie să știe că un utilizator poate schimba prioritatea unui proces în Linux prin modificarea valorii nice în Linux. Acest tabel arată timpul petrecut de procesor pentru procesele a căror valoare nice a fost schimbată.

%steal: Această coloană arată timpul petrecut de un procesor (care este virtualizat), pentru resurse de la procesorul fizic

%idle: Aceasta sugerează timpul de inactivitate petrecut de procesor.

În mod implicit, sar stochează toate datele sale în /var/log/sa/ și zilele sunt numite așa cum se arată mai jos.

s01 – pentru prima zi a lunii

s02-pentru a doua zi a lunii

s03,s04..și așa mai departe.

opțiunea-d în comanda SAR

Această opțiune -d poate fi folosită pentru a raporta fiecare activitate legată de diferite dispozitive atașate la sistem (dispozitive de bloc). O ieșire tipică a comenzii sar cu opțiunea -d este prezentată mai jos.

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.00 0.00 0.00 0.00 0.00 0.00 0.00.0012:01:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012: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 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.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.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.00 0.00 0.00 0.00.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: această coloană numește dispozitivele de pe mașină, în funcție de numerele major și minor ale unui dispozitiv de bloc Linux. Puteți verifica acest lucru făcând un ls -l în directorul /dev. așa cum se arată mai jos.

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

În ieșirea „ls -l” prezentată mai sus pentru „sda”, numărul major este „8”,iar numărul minor este „0”….Astfel, puteți identifica cu ușurință discul menționat în ieșirea comenzii sar.

tps: tps înseamnă transfer pe secundă, deci arată transferul pe secundă pe acel dispozitiv

rd_sec/s: arată numărul total de sectoare citite pe acel dispozitiv

wr_sec/s: dacă rd_sec/s reprezintă sectoarele citite pe secundă, atunci, evident, wr_sec reprezintă sectoarele scrise pe secundă.

avgrq-sz: această coloană arată media.

await: aceasta arată numărul total de timp în care procesorul a așteptat solicitări privind IO

%util: această coloană arată utilizarea cpu-ului în procente atunci când a fost generată solicitarea

Show Memory usage in SAR command

opțiunea -r disponibilă în comanda sar este foarte utilă. aceasta arată memoria, swap, memoria cache etc. la fiecare interval sau interval de timp necesar.

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 24242424 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
în ieșirea de mai sus, majoritatea coloanelor se explică de la sine (și majoritatea ieșirilor sunt în KB).
kbmemfree: aceasta arată cantitatea de memorie liberă
Kbmemused: memoria utilizată
%memused: procentul de memorie utilizată
kbbuffers: memoria tampon utilizată de kernel.
kbcached: memoria cache utilizată de kernel
toate celelalte intrări pentru memorie sunt swap (liberă, utilizată, procentuală etc)

Cum se pot prelua metricile unei anumite zile folosind SAR în linux

Cum s-a menționat anterior, toate metricile pentru o anumită zi sunt salvate în sa<day of month> wise. Deci, dacă vreau să știu metricile mele pentru a 27-a zi a lunii, pot afla cu ușurință acest lucru așa cum se arată mai jos.
# 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.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
în comanda de mai sus am trecut ca argument /var/log/sa/sa27 deoarece aveam nevoie de statistici pentru acea zi…treceți sa<zilele lunii>cum aveți nevoie în comanda de mai sus

Cum se pot obține metricele SAR pentru o anumită oră la o anumită dată

acest lucru poate fi realizat prin trecerea unui alt argument, așa cum se arată mai jos.

# 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 toate 2.72 1.06 0.75 1.09 0.04 94.33 Media: toate 2.76 0.21 0.70 1.11 0.04 95.18
În exemplul prezentat mai sus i-am cerut lui sar să recupereze metricile între 2:20:00 și 3:20:00 în a 27-a zi a lunii
Puteți trece chiar și orice altă opțiune de metrică împreună cu intervalul de timp…cum ar fi -d sau -r
Ați observat ? SAR ne poate arăta cu acuratețe statisticile mașinii dintr-o anumită zi la o anumită oră… astfel încât este mult mai ușor să identificăm blocajele.
Utilizarea opțiunii -A împreună cu comanda de mai sus va arăta ALL (toate metricile colectate de sar).
sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00 -A
Lovitura va fi elaborată. și veți obține aproape totul în sar din acea opțiune -A pe ecran!

Afișează statisticile de rețea folosind comanda sar

comanda sar arată chiar și statisticile de rețea. Acest lucru se poate face folosind opțiunea -n DEV în comanda sar.

# sar -n DEVLinux 2.6.18-194.el5xen (arhivă.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.77 0.00 0.00 0.00 0.0002:30:01 AM eth0 12.30 0.12 12.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.0002:30:01 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00.0002:40:01 AM lo 0.01 0.01 0.01 0.77 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.00 0.0002:40:01 AM eth1 13.96 0.00 1352.87 0.00 0.00 0.00 0.00

IFACE: reprezintă numele interfeței de pe placa nic

rxpck/s: arată numărul total de pachete primite pe secundă

txpck/s:pachete transmise pe secundă

rxcmp/s: pachete comprimate primite

txcmp/s: pachete comprimate transmise

rxmcst/s: pachete multicasate pe secundă.

Alți parametri care pot fi determinați cu ajutorul sar

opțiunea

-y în sar: poate fi folosită pentru a determina detalii despre tty

opțiunea

-X în sar pentru a obține detalii despre un anumit proces. Trebuie să treceți pid ca argument la această opțiune.

-n Opțiunea SOCK în sar: această opțiune va raporta toate detaliile socket-urilor.

Lasă un răspuns

Adresa ta de email nu va fi publicată.