Was bedeutet eine hohe CPU-Last in htop für Prozesse mit Status S?

1357
Thorsten Schöning

Beim Überwachen meines Systems htopwird meistens die Prozessstatus-Spalte für die meisten Prozesse unter Last angezeigt Sund Rmanchmal wird auf umgeschaltet . Nach meinem Verständnis des Docs-Status befindet Ssich ein Prozess im Ruhezustand, während Rer ausgeführt wird. Aber wie kann ein schlafender Prozess die CPU so viel verbrauchen, wie ich im Screenshot unten sehen kann? Ich hätte 0für diese Prozesse meistens eine Last erwartet .

Ich habe den Verdacht, einen I/OEngpass zu haben, daher wäre es durchaus I/Osinnvoll, einige schlafende Prozesse zu erwarten . In einem solchen Fall verstehe ich jedoch nicht die hohe CPU-Last für schlafende Prozesse. Könnte dies das Ergebnis von z. B. vielen Kontextwechseln sein, weil dies I/Okeinen angemessenen Durchsatz bietet, aber nur sehr wenige Daten anbietet? Das bedeutet, dass die CPUs nicht anderweitig verwendet werden können, während sie auf I/Oden Erfolg aller warten .

Oder kann es sich nur um ein Anzeigeproblem handeln, weil das Warten auf I/Oirgendwie angezeigt werden muss, und zwar in Bezug auf die Auslastung, aber tatsächlich beanspruchen diese Prozesse keine CPU? In einem solchen Fall würden die CPUs nach Bedarf verwendet, um Dinge wirklich zu verarbeiten.

Vielen Dank für jeden Einblick!

htop

2
Die CPU-Auslastung wird über einen Zeitraum gemeldet, 'S' ist der Status am Ende dieser Zeit. Prozesse können ständig zwischen Lauf und Ruhezustand wechseln (Ruhezustand, um darauf zu warten, dass die Festplatte diese Bytes liest). Aganju vor 7 Jahren 2
Wenn ein Programm einen hohen CPU-Verbrauch hat, ist es für andere Prozesse schwierig, eine Chance zur Ausführung zu erhalten. Ich vermute, dass "htop" am wahrscheinlichsten seine CPU-Zeit in den seltenen Fällen bekommt, in denen die Programme mit hoher CPU-Leistung auf etwas warten (CD, Swap, Netzwerk, Semaphor usw.). AFH vor 7 Jahren 1
@AFH Außer "R" bedeutet, dass die CPU betriebsbereit ist und die CPU derzeit nicht unbedingt verwendet wird. David Schwartz vor 7 Jahren 0
@Aganju Das Warten auf Datenträger-E / A wird mit 'D' und nicht mit 'S' angezeigt. David Schwartz vor 7 Jahren 1
@DavidSchwartz - Ich habe gemerkt, dass auf einem Single-Core-System einsatzbereit sein muss, da "htop" die einzige CPU verwendet, und dies wird nur als Folge von Zeitüberschneidungen geschehen, obwohl ich nicht nachgesehen habe bei den Details dieses Algorithmus unter Linux. Was "S" und "D" angeht, haben Sie Recht, und ich hätte keine Disc-Zugriffe in meine Wartestatusliste aufnehmen sollen, obwohl theoretisch ein Disk-Treiber geschrieben werden könnte, um die Interrupt-Behandlung zu ermöglichen. In diesem Fall `S` würde zeigen - aber die Standard-Harddisk- und Netzwerk-Disk-Treiber auf Ubuntu wurden nicht so geschrieben. AFH vor 7 Jahren 0
Es ist auch bemerkenswert, dass die Aktualisierungsrate von htop 1 Sekunde beträgt (zumindest standardmäßig), so dass einige Turnen ausgeführt werden müssen, um den Status und die Zeit anzuzeigen, wenn das Zeitfenster zwischen Threads aufgeteilt wird, was auf einer Zeitskala von 10 bis 100 ms geschieht. Möglicherweise gab es 1/10/100 Threads, die in der letzten Sekunde Zeit bekommen haben. Frank Thomas vor 7 Jahren 0

0 Antworten auf die Frage