2016-03-18 5 views
0

Es war eine Interviewfrage, die ich mit Telefon-Screening betrachte.Welche Prozesszustände tragen zum Lastdurchschnitt eines Servers bei?

gab ich die Antwort wie: Running State (R), interruptible State (S) und die IO wait.

Aber ich denke, ich mag die Frage falsch verstehen oder etwas könnte in meiner Antwort fehlen. Ich fühle das einfach.

Also überprüfte ich im Internet einige alberne verstreute Informationen. Ich bin mir immer noch nicht sicher, was die Antwort ist.

Was denken Sie über die Antwort auf diese Frage?

+0

Dies ist in hohem Maße implementierungsabhängig. – user3344003

Antwort

1

Es gibt keine Standardmethode zur Berechnung des Lastdurchschnitts, dies hängt vom Betriebssystem ab. Hier ist Linux's load calculator:

long calc_load_fold_active(struct rq *this_rq) 
{ 
    long nr_active, delta = 0; 

    nr_active = this_rq->nr_running; 
    nr_active += (long) this_rq->nr_uninterruptible; 

    if (nr_active != this_rq->calc_load_active) { 
     delta = nr_active - this_rq->calc_load_active; 
     this_rq->calc_load_active = nr_active; 
    } 

    return delta; 
} 

Die Prozesse Linux gilt als aktiv für die Zwecke der Lastmittelwerte werden Laufen (R) und Uininterruptible (D).

Interruptible Sleep (S) wird nicht gezählt und weder Defunct (Z) noch Stopped (T).

+0

wow, es hat es einfach genagelt! Ich denke, ich habe jetzt eine Gewohnheit gelernt, wenn etwas, das du nicht finden kannst, den Quellcode ausgräbt! Vielen Dank :) – FZE