You are on page 1of 32

EVALUAREA PERFORMANȚELOR

Analiza comportamentului și performanței sistemului

Andreea-Carmen Ifrim
Grupa 342C5
VMSTAT

Interpretarea parametrilor monitorizați


Parametrii monitorizați pentru această comandă sunt:

Memory:

 swpd: indică numărul de blocuri evacuate pe disk (swapped out); echivalent cu totalul memoriei
virtuale folosite;
 free: memoria liberă ;

Swap:

 si: numărul de blocuri pe secundă pe care sistemul de operare le mapează din memoria virtuală
(swap in);
 so: numărul de blocuri pe secundă pe care sistemul de operare le evacuează (swap out);

I/O:

 bi: numărul de blocuri primite (citite) de la un device (ex: hard-disk)


 bo: numărul de blocuri trimise (scrise) către un device (ex: hard-disk)

System:

 in: numărul de întreruperi pe secundă;


 cs: numărul de schimbări de context pe secudă;

CPU:

 us: procentul de timp petrecut de CPU rulând în user-mode;


 sy: procentul de timp petrecut de CPU rulând în system-mode;
 id: timpul în care procesorul este inactiv (în procente).
 wa: : procentul de timp petrecut de CPU așteptând după operații IO;

Valorile acestor parametrii au măsurate în timpul rulării codului temei (timp de 30secunde), cu patru
limitări a memoriei virtuale diferite.

1
Limitare 1024MB
În cazul limitării memoriei virtuale la 1024MB, programul funcționează corespunzător, generându-se
fișierul cu N = 10^8 numere pe baza cărora se determină mediana și abaterea standard.

Memorie

Din graficul generat pe baza parametrilor pentru memorie (swpd și free), se poate observa că:

- dimensiunea memoriei libere scade deoarece pe parcursul rulării programului se fac alocări
suplimentare pe stivă;
- numărul de pagini virtuale mapate este constant pe toată durata monitorizării.

Swap
Pe parcursul rulării programului nu a fost mapată (swap in) sau evacuată (swap out) nicio pagină de
memorie virtuală, astfel valoarea parametrilor si și so a fost 0 pe toată durata monitorizării.

2
I/O

Din graficul generat pe baza valorilor înregistrate pentru parametrii I/O (bi și bo), se poate observa că:

- numărul de blocuri de intrare (bi) este foarte mic deoarece programul nu face cereri de citire în
memoria de pe disk;
- numărul de blocuri de ieșire (bo) este foarte mare, fapt datorat generării unui fișier foarte mare
și scrierea a N = 10^8 numere pe hard-disk.

3
Sistem

Din graficul generat pe baza parametrilor pentru sistem (in și cs), se poate observa că:

- numărul întreruperilor de sistem (is) este foarte mare și variază mult pe parcursul rulării
programului;
- numărul schimbărilor de context (cs) este de asemenea mare pe întreaga durată a procesului de
monitorizare

4
CPU

Din graficul generat pe baza parametrilor pentru monitorizarea CPU (us,sy,id,wa), se poate observa că:

- procesorul este folosit mai mult timp în user-mode pentru a rula codul non-kernel, lucru
remarcat din valorile parametrului us;
- programul folosește un timp scurt procesorul în system-mode (în interiorul kernelului), lucru
remarcat prin valorile paremtrului sy. Timpul petrecut de procesor în system-mode se datorează
alocării dinamice a memoriei, la apelul funcției malloc și accesării hardware-ului, în cazul nostru
pentru scrierea în fișier, moment când se înregistrează o creștere considerabilă a acestuia;
- timpul de neutilizare a procesorului este foarte mic (id);
- procesorul așteaptă doar în procente foarte mici după operații IO, înregistrându-se un singur
spike notabil.

5
Limitare 512MB
În cazul limitării memoriei virtuale la 512MB, programul funcționează corespunzător, generându-se
fișierul cu N = 10^8 numere pe baza cărora se determină mediana și abaterea standard.

Memorie

Din graficul generat pe baza parametrilor pentru memorie (swpd și free), se poate observa că, la fel ca în
primul caz:

- dimensiunea memoriei libere scade deoarece pe parcursul rulării programului se fac alocări
suplimentare pe stivă;
- numărul de pagini virtuale mapate este constant pe toată durata monitorizării.

Swap
La fel ca în cazul primei monitorizări, pe parcursul rulării programului nu a fost mapată (swap in) sau
evacuată (swap out) nicio pagină de memorie virtuală, astfel valoarea parametrilor si și so a rămas 0.

6
I/O

Din graficul generat pe baza parametrilor pentru I/O (bi și bo), se poate observa că:

- numărul de blocuri de intrare (bi) este aproape întotdeauna 0 deoarece programul nu face
cereri de citire în memoria de pe disk;
- numărul de blocuri de ieșire (bo) este foarte mare, fapt datorat generării unui fișier foarte mare
și scrierea a N = 10^8 numere pe hard-disk.

Modificările acestor parametrii au rămas la fel ca în cazul limitării memoriei la 1024MB.

7
Sistem

La fel ca în cazul limitării memoriei virtuale la 1024MB, din graficul generat pe baza parametrilor pentru
sistem (in și cs), se poate observa că:

- numărul întreruperilor de sistem (is) este foarte mare și variază mult pe parcursul rulării
programului;
- numărul schimbărilor de context (cs) este de asemenea mare pe întreaga durată a procesului de
monitorizare;
- cei doi parametrii variază direct proporțional.

8
CPU

Din graficul generat pe baza parametrilor pentru monitorizarea CPU (us, sy, id, wa), se poate observa că:

- procesorul este folosit mai mult timp în user-mode pentru a rula codul non-kernel, lucru
remarcat din valorile parametrului us;
- programul folosește un timp scurt procesorul în system-mode (în interiorul kernelului), lucru
remarcat prin valorile paremtrului sy. Timpul petrecut de procesor în system-mode se datorează
alocării dinamice a memoriei, la apelul funcției malloc și accesării hardware-ului, în cazul nostru
pentru scrierea în fișier, moment când se înregistrează o creștere considerabilă a acestuia.
- timpul de neutilizare a procesorului este foarte mic (id);
- procesorul așteaptă doar în procente foarte mici după operații IO, înregistrându-se un singur
spike notabil.

Acești parametrii au o variație asemănătoare ca în cazul primei rulări a programului.

9
Limitare 256MB
În cazul limitării memoriei virtuale la 256MB, programul nu mai funcționează corespunzător și dă
segmentation fault.

Memorie

Din graficul generat pe baza parametrilor pentru memorie (swpd și free), se poate observa că:

- spre deosebire de primele două cazuri, dimensiunea memoriei libere crește, ajungând la o
valoare constantă. Acest lucru se întâmplă deoarece, după terminarea programului (la secunda
2), memoria alocată anterior este eliberată.
- numărul de pagini virtuale mapate este constant pe toată durata monitorizării

Swap
La fel ca și la celelalte două rulări anteriore, nu a fost mapată (swap in) sau evacuată (swap out) nicio
pagină de memorie virtuală, astfel valoarea parametrilor si și so a fost 0 pe toată durata monitorizării.

10
I/O

Din graficul generat pe baza parametrilor pentru I/O (bi și bo), se poate observa că:

- numărul de blocuri de intrare (bi) este foarte mic deoarece programul nu face cereri de citire în
memoria de pe disk;
- numărul de blocuri de ieșire (bo) este de asemenea mic, comparativ cu valorile obținute în
primele două cazuri. Întrucât programul nu mai rulează, nu se vor mai genera cele N = 10 ^8
numere în fișier și în consecința nu vor mai exista scrieri pe disk.

11
Sistem

Din graficul generat pe baza parametrilor pentru sistem (in și cs), se poate observa că:

- numărul întreruperilor de sistem (is) rămâne la fel de mare ca în primele două cazuri;
- numărul schimbărilor de context (cs) rămâne de asemenea la fel de mare ca în primele două
cazuri;
- variația ambilor parametrii se menține asemănătoare cu cea observată la primele două rulări ale
programului.

12
CPU

Din graficul generat pe baza parametrilor pentru monitorizarea CPU (us, sy, id, wa), se poate observa că:

- spre deosebire de primele rulările anterioare ale programului, procesorul rămâne aproape
neutilizat, fiind aproape 100% idle;
- există doar un timp foarte scurt al procesorului utilizat în user-mode și system-mode, înainte de
apariția erorii segmentation fault;
- nici în acest caz nu se așteaptă după operații I/O.

13
Limitare 128MB
În cazul limitării memoriei virtuale la 128MB, programul nu mai funcționează corespunzător și dă
segmentation fault.

Memorie

La fel ca în cazul limitării anterioare, valorile parametrilor swpd și free rămân constate pe întreagă
monitorizare.

Swap
La fel ca și în cazul rulărilor anteriore, nu a fost mapată (swap in) sau evacuată (swap out) nicio pagină
de memorie virtuală, astfel valoarea parametrilor si și so a fost 0 pe toată durata monitorizării.

14
I/O

Asemănător cu analiza realizată pentru rularea anterioară, se poate observa că:

- numărul de blocuri de intrare (bi) este foarte mic deoarece programul nu face cereri de citire în
memoria de pe disk;
- numărul de blocuri de ieșire (bo) este de asemenea mic, comparativ cu valorile obținute în
primele două cazuri. Întrucât programul nu mai rulează, nu se vor mai scrie cele N = 10 ^8
numere în fișier și în consecința nu vor mai exista scrieri pe disk

15
Sistem

Din graficul generat pe baza parametrilor pentru sistem (in și cs), se poate observa că:

- numărul întreruperilor de sistem rămâne aproximativ același ca în celelalte cazuri;


- numărul schimbărilor de context (cs) este de asemenea asemănător cu valorile obținute
anterior;
- variația ambilor parametrilor rămâne direct proporțională.

16
CPU

Din graficul generat pe baza parametrilor pentru monitorizarea CPU (us, sy, id, wa), se poate observa că:

- la fel ca în cazul rulării anterioare a programului, procesorul rămâne aproape neutilizat, fiind
aproape 100% idle;
- există doar un timp foarte scurt al procesorului utilizat în user-mode și system-mode, înainte de
apariția erorii segmentation fault
- nici în acest caz nu se așteaptă după operații I/O, valoarea parametrului wa fiind 0.

17
MPSTAT

Interpretarea parametrilor monitorizați


Parametrii monitorizați pentru această comandă sunt:

 user - indică procentul utilizării procesorului la nivel user (aplicație);


 nice - indică procentul utilizării procesorului la nivel utilizator cu prioritate;
 system - indică procentul utilizării procesorului la nivel sistem (kernel);
 iowait- indică procentul utilizării procesorului pentru cereri I/O;
 irq - indică procentul de timp utilizat de procesor pentru rezolvarea întreruperilor;
 soft - indică procentul de timp utilizat de procesor pentru rezolvarea întreruperilor software;
 idle – indică procentul de timp în care procesorul este inactiv.

Valorile acestor parametrii au măsurate în timpul rulării codului temei (timp de 30secunde). În
continuare se vor prezenta valorile înregistrate la fiecare limitare a memoriei.

18
Limitare 1024MB

Din graficul generat pe baza parametrilor pentru monitorizarea CPU (%user, %system, %idle), se poate
observa că:

- Procesorul rulează cea mai mare parte a timpului în user-mode pentru a executa codul non-
kernel, lucru remarcat din valorile parametrului %user; acestea sunt mult mai mari decât cele
ale la parametrului %system;
- Programul folosește doar un procent mic din timp procesorul în system-mode (în interiorul
kernelului), lucru remarcat prin valorile parametrului %system. Timpul petrecut de procesor în
system-mode se datorează alocării dinamice a memoriei, la apelul funcției malloc și accesării
hardware-ului, în cazul nostru pentru scrierea în fișier;
- Parametrii %nice, %irq, %soft, %iowait au pe durata întregii monitorizări valoarea 0, astfel că
procesorul rulează doar în user-mode sau system-mode (de aceea am ales să nu îi reprezint pe
grafic);
- În restul timpului de rulare a programului, procesorul este idle, deoarece acesta nu este ocupat
cereri I/O sau întreruperi.

19
Limitare 512MB
În cazul limitării memoriei virtuale la 512MB, programul funcționează corespunzător, generându-se
fișierul cu N = 10^8 numere pe baza cărora se determină mediana și abaterea standard.

Parametrii monitorizați rămân aproximativ la fel ca în cazul primei rulări. Astfel, din graficul generat pe
baza lor, se poate observa, asemănător primului caz:

- procesorul rulează cea mai mare parte a timpului în user-mode pentru a executa codul non-
kernel; valorile parametrului %user sunt mult mai mari decât cele ale la parametrului %system;
- programul folosește doar un procent mic din timp procesorul în system-mode (în interiorul
kernelului), lucru remarcat prin valorile parametrului %system. Timpul petrecut de procesor în
system-mode se datorează alocării dinamice a memoriei, la apelul funcției malloc și accesării
hardware-ului, în cazul nostru pentru scrierea în fișier;
- parametrii %nice, %irq, %soft, %iowait rămân pe durata întregii monitorizări la valoarea 0, astfel
că procesorul rulează doar în user-mode sau system-mode;
- în restul timpului de rulare a programului, procesorul este idle, deoarece acesta nu este ocupat
cereri I/O sau întreruperi.

20
Limitare 256MB

În cazul limitării memoriei virtuale la 256MB, programul nu mai funcționează corespunzător și


înregistrează o eroare de memorie.

Din graficul generat pe baza parametrilor pentru monitorizarea CPU (%user, %system, %idle), se poate
observa că:

- spre deosebire de primele rulările ale programului, procesorul rămâne aproape neutilizat, fiind
aproape 100% idle;
- există doar un timp foarte scurt al procesorului utilizat în user-mode și system-mode, înainte de
apariția erorii segmentation fault
- și în acest caz parametrii %nice, %irq, %soft, %iowait rămân pe durata întregii monitorizări la
valoarea 0, astfel că procesorul rulează doar în user-mode sau system-mode;

21
Limitare 128MB
În cazul limitării memoriei virtuale la 128MB, programul nu mai funcționează corespunzător și dă
segmentation fault.

Din graficul generat pe baza parametrilor pentru monitorizarea CPU (%user, %system, %idle), se poate
observa că:

- la fel ca în cazul rulării anterioare a programului, procesorul rămâne aproape neutilizat, fiind
aproape 100% idle;
- există doar un timp foarte scurt al procesorului utilizat în user-mode și system-mode, înainte de
apariția erorii segmentation fault;
- și în acest caz parametrii %nice, %irq, %soft, %iowait rămân pe durata întregii monitorizări la
valoarea 0, astfel că procesorul rulează doar în user-mode sau system-mode;

22
IOSTAT

Interpretarea parametrilor monitorizați


Parametrii monitorizați pentru această comandă sunt:

 kB_read/s – Indică numărul de kilobytes citiți pe secundă


 kB_wrtn/s – Indică numărul de kilobytes scriși pe un device pe secundă
 kB_read – indică numărul total de kilobytes citiți
 kB_wrtn – indică numărul total de kilobytes scriși

Valorile acestor parametrii au măsurate în timpul rulării codului temei (timp de 30secunde), cu patru
limitări de memorie diferite. De asmenea, datele au fost înregistrate pentru partiția sda.

23
Limitare 1024MB
kB_read/s și kB_wrtn/s

Din graficul generat pe baza parametrilor kb_read/s și kb_wrtn/s, se poate observa că:

- numărul de kilobytes citiți per secunda este foarte mic deoarece programul nu face cereri de
citire în memoria de pe disk; astfel valoarea parametrului kb_read/s rămâne aproape de 0 pe
întreaga durată a monitorizării (valorile sale sunt insesizabile pe grafic);
- numărul de kilobytes scriși per secunda este foarte mare; valorile mari înregistrate pentru
parametrul kb_wrtn/s sunt astfel fapt datorate generării unui fișier foarte mare și scrierea a N =
10^8 numere pe hard-disk.

24
kB_read și kB_wrtn

Din graficul generat pe baza parametrilor kb_read și kb_wrtn, se poate observa că:

- totalul numărului de kilobytes citiți este foarte mic deoarece programul nu face cereri de citire
în memoria de pe disk; astfel valoarea parametrului kb_read rămâne aproape 0;
- totalul numărului de kilobytes scriși este foarte mare; valorile mari înregistrate pentru
parametrul kb_wrtn se datoreaza generării unui fișier foarte mare și scrierea a N = 10^8 numere
pe hard-disk.

25
Limitare 512MB
kB_read/s și kB_wrtn/s

Datale obținute pentru rularea programului cu limitarea memoriei virtuale la 512MB sunt asemănătoare
cu cele anterioare. Astfel, din graficul generat pe baza parametrilor kb_read/s și kb_wrtn/s, se poate
observa că:

- numărul de kilobytes citiți per secunda este foarte mic deoarece programul nu face cereri de
citire în memoria de pe disk;
- numărul de kilobytes scriși per secunda este foarte mare;

26
kB_read și kB_wrtn

La fel ca în cazul parametrilor kb_read/s și kb_wrtn/s, datale obținute pentru rularea programului cu
limitarea memoriei virtuale la 512MB sunt asemănătoare cu cele anterioare și au aceeași interpretare.

27
Limitare 256MB
kB_read/s și kB_wrtn/s

Din graficul generat pe baza parametrilor kb_read/s și kb_wrtn/s, se poate observa că:

- numărul de kilobytes citiți per secunda este foarte mic deoarece programul nu face cereri de
citire în memoria de pe disk;
- numărul de kilobytes scriși per secunda este de asemenea mic, comparativ cu valorile obținute
în primele două cazuri. Întrucât programul nu mai rulează, nu se vor mai scrie cele N = 10 ^8
numere în fișier și în consecința nu vor mai exista scrieri pe disk.

28
kB_read și kB_wrtn

Din graficul generat pe baza parametrilor kb_read și kb_wrtn, se poate observa că:

- totalul numărului de kilobytes citiți este foarte mic deoarece programul nu face cereri de citire
în memoria de pe disk; astfel valoarea parametrului kb_read rămâne aproape 0.
- partiția sda înregistrează totuși de scriere mari la început, înainte de încetarea funcționării
programului.

29
Limitare 128MB
kB_read/s și kB_wrtn/s

Datale obținute pentru rularea programului cu limitarea memoriei virtuale la 128MB sunt asemănătoare
cu cele anterioare. Astfel, din graficul generat pe baza parametrilor kb_read/s și kb_wrtn/s, se poate
observa că:

- numărul de kilobytes citiți per secunda este foarte mic deoarece programul nu face cereri de
citire în memoria de pe disk;
- numărul de kilobytes scriși per secunda este de asemenea mic, comparativ cu valorile obținute
în primele două cazuri.

30
kB_read și kB_wrtn

La fel ca în cazul parametrilor kb_read/s și kb_wrtn/s, datale obținute pentru rularea programului cu
limitarea memoriei virtuale la 128MB sunt asemănătoare cu cele anterioare și au aceeași interpretare.

Concluzie
Folosind cele trei comenzi, vmstat, mpstat și iostat, am putut analiza comportamentul și performanțele
sistemului de calcul, în timpul rulării unui program ce solicită numeroase resurse.

Deoarece programul a fost rulat pe o mașina virtuală, cu capacitatea RAM de 4GB și un singur nucleu,
rezultatele nu au fost întocmai cele așteptate, iar performanțele sistemului nu au fost întotdeauna bune.

De asemenea, codul programului nu a fost optimizat special pentru a putea observa și cazurile în care se
generează o eroare de memorie. Astfel, în cazul limitării memoriei virtuale la 512MB, respectiv 128MB,
se pot observa valorile înregistrate pentru un program ce generează segmentation fault.

31

You might also like