Unterschied zwischen Load und CPU Nutzung

  • Hallo,


    ich habe seit der Umstellung auf Xine das Problem, dass der VDR recht träge reagiert.
    Bisher dachte ich, es könne nicht an der CPU Auslastung liegen, da diese um 50% lag:

    Code
    Cpu(s): 50.6%us, 10.3%sy,  0.6%ni, 34.7%id,  1.2%wa,  1.6%hi,  0.9%si,  0.0%st


    Daraus lese ich, dass die CPU sich zu 35% langweilt.


    Sehe ich mir aber das Load an:

    Code
    load average: 1.36, 1.29, 1.69

    so könnte dies doch die Erklärung sein.
    Die beiden Zeilen wurden zum gleichen Zeitpunkt gemacht.


    Wie können die Werte (so stark) voneinander abweichen?


    Viele Grüße,
    Hendrik

  • Ist nicht leicht zu erklaeren- geschweige denn zu verstehen. :gap
    Bin mir selbst nicht so 100%ig sicher :hat2


    Aaaalso:


    Die CPU Nutzung beschreibt ja den Anteil, den ein einzelner Prozess sich an der verfuegbaren Kapazitaet "nimmt" (in der Realitaet wird zugewiesen, aber das sind jetzt Nebensaechlichkeiten).
    Es gibt auch einen "Idle-Prozess", der nur dann aktiv ist, wenn sonst nix passiert. Unter Windows sieht man diesen Prozess auch im Taskmanager.


    Die Load hingegen beschreibt die Anzahl der Prozesse, die auf Ausfuehrung warten oder ausgefuehrt werden.


    Das eine hat nicht zwangslaeufig etwas mit dem anderen zu tun.
    Wenn z.B. 50 CPU intensive Prozesse jeweils mit "nice 19" laufen (z.B. Primzahlberechnung, Seti o.ae.) wirst Du eine Load von ca. 50 haben und die CPU ist zu 100% aktiv.
    Umgedreht wird das schon schwieriger, aber wenn viele Prozesse z.B. voneinander abhaengen und ein einzelner auf z.B. die Festplatte wartet, so haben wir eine hohe Load, aber eine geringe CPU Nutzung...


    Des Weiteren zeigt ja die CPU die gerade aktuellen Werte, wohingegen die Load den Durchschnitt der letzten Minute (5, 15 Minuten) anzeigt.


    Ich denke, dass bei Dir der VDR mit entsprechenden Modulen und Prozessen die hohe Load verursacht, aber eigentlich nicht viel zu tun hat. Und immerhin hast Du nur 34,7% Idle- die CPU ist also zu ueber 60% beschaeftigt! Das ist schon ordentlich- was auch immer auf dem System laeuft.


    Grobe richtwerte fuer die Load gibt es nicht, meiner Erfahrung nach ist eine Load von "Anzahl CPUs x 2" noch immer ok, darueber kann, muss es aber nicht eng werden. Eine Load von eins oder darunter ist absolut harmlos.


    http://de.wikipedia.org/wiki/L…Average_auf_Unix-Systemen

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Hallo knebb,


    vielen Dank für die ausführliche Erklärung. Ich hab sie aber nicht ganz verstanden:


    Wenn ein Prozess auf die HDD wartet, dann sehe ich das doch am Punkt io xy%
    Wenn ich jetzt hier:

    Code
    Cpu(s): 50.6%us, 10.3%sy,  0.6%ni, 34.7%id,  1.2%wa,  1.6%hi,  0.9%si,  0.0%st


    aufsummiere und nicht auf 100% kommt, sollte der load doch unter 1 sein, oder?


    Gerade habe ich übrigens diesen Fall:

    Code
    top - 08:07:22 up  9:44,  2 users,  load average: 9.43, 8.51, 5.99
    Tasks: 137 total,   2 running, 135 sleeping,   0 stopped,   0 zombie
    Cpu(s): 11.1%us,  0.0%sy,  0.0%ni,  0.0%id, 85.2%wa,  3.7%hi,  0.0%si,  0.0%st


    Was ist "wa"?


    Gruß,
    Hendrik

  • Deine Latency time is aber auch nicht von schlechten Eltern, was? 19.200er Modem Anbindung? :gap :hat2


    Zitat

    Originally posted by henfri
    Wenn ein Prozess auf die HDD wartet, dann sehe ich das doch am Punkt io xy%


    Wo siehst Du was von io xy%?


    Zitat

    Wenn ich jetzt hier:

    Code
    Cpu(s): 50.6%us, 10.3%sy,  0.6%ni, 34.7%id,  1.2%wa,  1.6%hi,  0.9%si,  0.0%st


    aufsummiere und nicht auf 100% kommt, sollte der load doch unter 1 sein, oder?


    Nein. Die Load hat nichts mit der CPU Last zu tun, KANN damit aber zusammenhaengen. Du hast:
    50,6+10,3+0,6+34,7+1,2+1,6=99%
    Allerdings sollte das theroretisch immer 100% ergeben (da ja id fuer Idle steht), sind also kleinere Messungenauigkeiten. Das heisst aber ja nicht, dass Deine CPU zu 100% genutzt wird. Sondern nur zu 100-IDLE%.
    Allerdings koennen Programme ja auch etwas anderes benoetigen, als CPU Rechenzeit. Z.B. Zugriff auf den Drucker, auf die Festplatte, auf das DVB-S Device etc.
    Lass also mal zwei Prozesse etwas ausdrucken wollen. Gibt aber halt nur ein Drucker. Also muss der zweite Prozess warten, bis der erste fertig ist. Allerdings hat der Zweite in der Wartezeit ja nix zu tun, belastet die CPU also auch nicht. Das Drucken braucht auch nicht viel CPU, also hast Du bei geringer CPU Last eine Load von 2, weil zwei Prozesse ausgefuehrt werden koennen (der eine wirds, der andere wartet).


    Zitat


    Gerade habe ich übrigens diesen Fall:

    Code
    top - 08:07:22 up  9:44,  2 users,  load average: 9.43, 8.51, 5.99
    Tasks: 137 total,   2 running, 135 sleeping,   0 stopped,   0 zombie
    Cpu(s): 11.1%us,  0.0%sy,  0.0%ni,  0.0%id, 85.2%wa,  3.7%hi,  0.0%si,  0.0%st


    Was ist "wa"?


    IO-Waits! Von was rede ich eigentlich die ganze Zeit, wenn Du nicht mal das erkennst- aber oben von io xy% erzaehlst :schiel :sure


    Gruß,
    Hendrik[/quote]

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!