Erhöhen Threads den load?

15/03/2010 - 14:10 von Hauke Laging | Report spam
Moin,

ich habe hier einen merkwürdigen Effekt. Ich starte ein Programm
(Virtualbox), was offenbar als einzelner Prozess làuft, und mein load (top)
schießt von 0.x auf 5, 8 oder sogar 10 hoch.

Ich frage mich gerade, wie das möglich ist. Der Prozess belegt war viel CPU
(70–80%), aber der load gibt doch an, wie viele Prozesse gleichzeitig laufen
wollen. Wenn nun nur ein zusàtzlicher Prozess da ist, sollte doch aus
schlicht mathematischen Gründen der Load nur auf 1+$vorher steigen können.

ps ... stat zeigt, dass der Prozess mehrere Threads hat. Ist es so, dass die
Threads für den load-Wert als eigene Prozesse zàhlen, so dass der load einem
dann vor allem sagt, wie viele CPU-Kerne dieser Prozess verwerten könnte?
;-)

So, ich habe gerade den ps-Wert nlwp entdeckt. In dem Zusammenhang ist mir
auch aufgefallen, dass es (jedenfalls jetzt gerade) mehrere VirtualBox-
Prozesse gibt (aber CPU-relevant war immer nur einer). Der vermutlich CPU-
làstige Prozess hat geschlagene 19 Threads.


CU

Hauke
http://www.hauke-laging.de/ideen/
 

Lesen sie die antworten

#1 Marcel Müller
15/03/2010 - 15:27 | Warnen spam
Hallo,

Hauke Laging wrote:
ps ... stat zeigt, dass der Prozess mehrere Threads hat. Ist es so, dass die
Threads für den load-Wert als eigene Prozesse zàhlen, so dass der load einem
dann vor allem sagt, wie viele CPU-Kerne dieser Prozess verwerten könnte?



ja.
Historisch gesehen kannte Unix gar keine Threads, sondern nur fork.
Heißt alles, was ausführbar ist, zàhlt. Ob nun im Kontext eines
Prozesses oder im Kontext mehrerer Prozesse ist egal. Von der Sache her
ist das auch logischer, denn das einzige was Prozesse und Threads
unterscheidet ist, dass nur ein partieller Kontext-Switch stattfindet.


So, ich habe gerade den ps-Wert nlwp entdeckt. In dem Zusammenhang ist mir
auch aufgefallen, dass es (jedenfalls jetzt gerade) mehrere VirtualBox-
Prozesse gibt (aber CPU-relevant war immer nur einer). Der vermutlich CPU-
làstige Prozess hat geschlagene 19 Threads.



Das ist nicht sonderlich überraschend, dass eine VM mehrere Threads
belegt. Möglich wàre sogar, dass die VM ihre Gast-Threads als
Native-Threads auf dem Host abbildet.


Marcel

Ähnliche fragen