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 sysstat).
# 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:
- Activitatea bufferului de sistem
- Informații despre apelurile de sistem
- Informații despre dispozitivele de blocare
- Informații generale de paginare
- Informații despre memoria semaforizată și alocarea memoriei
- 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
Cum se pot prelua metricile unei anumite zile folosind SAR în linux
# 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
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
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.