On Fri, 9 Dec 2005, Octavian Rasnita wrote:

Ok, atunci poate ca ma poti lamuri de ce totusi cand dau comanda:

ps aux | grep program

...imi afiseaza ceva de genul:
root     16217  30.6  0.7  10060  7432 ?        Ss   10:00   0:47
/usr/bin/perl /dir/program

Nu inseamna ca acest program ocupa peste 30% din microprocesor?

Nu. Inseamna ca atit crede ps ca ia din CPU acel program. ps ruleaza doar odata si trebuie sa ruleze rapid, astfel ca timpii consumati din CPU sint raportati la niste timpi totali destul de mici. Sa dau un exemplu. Premise: 1. top face acele statistici la 5 secunde by default, dar il poti pune sa-si faca si mai des. Astfel ca daca in cele 5 secunde procesul consuma puternic CPU astfel:
                * de la 0.10 la 0.15;
                * de la 0.75 la 1.00;
                * de la 3.75 la 4.25;
                * de la 4.90 la 5.00.
2. procesul a rulat deja de 10 minute iar el a cerut (si rulat) in acest interval 50% din timpii de CPU.

Astfel, top va zice ca acel proces a rulat: (0.05+0.25+0.5+0.1)/5.00 * 100 = 18% din timpul in care a calculat el iar ps va spune ca a rulat 50% (timpul in care a rulat efectiv adica timpii acordati de kernel acelui proces pentru a rula / timpul de cind a fost pornit procesul).

Deci totul se reduce la timpul in care culegi esantioanele si la numarul esantioanelor culese. E ca la probabilitati: daca din 6 bile de culori diferite extragi tot timpul cite o bila vei vedea ca pe masura ce inaintezi cu numarul extragerilor procentul in care ai nimerit cite una dintre culori va fi egal cu 1/6 din numarul extragerilor. Asa si aici, cu cit perioada de esantionare creste cu atit media este mai aproape de valoarea ei reala (da, acel numar este o medie, nu asa simplu cum am calculat-o eu ca depinde de multi parametri, insa e o medie).

Lamurit cit de cit? Ruleaza top succesiv, vei vedea ca odata spune 30%, alteori 1% (cind ai dat tu CPU-ul era ocupat 0.6% cu procese utilizator de exemplu, probabil era acest proces sau altul rulat de useri), alteori 90%, alteori 10%. ps iti va spune media "mare", de cind a rulat procesul si pina acum, adica pe intregul interval de esantionare posibil pentru acel proces.

--
Any views or opinions presented within this e-mail are solely those of
the author and do not necessarily represent those of any company, unless
otherwise expressly stated.

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui