Warum zeigt htop nicht dieselben Prozesse wie top an?

18

Ich habe einen Heimserver, auf dem manchmal eine hohe CPU-Auslastung von etwa 50 bis 70 Prozent ausgeführt wird.

In htopmeinem bevorzugten Prozessmanager kann ich die Prozesse nach CPU-Auslastung sortieren, aber häufig verbraucht kein Prozess mehr als 0% CPU. Auf der anderen Seite wird htopdie gesamte CPU-Auslastung des Systems angezeigt, die wie bereits erwähnt bei etwa 50 Prozent liegt.

Ich denke, dass es eine einfache Erklärung dafür gibt, aber ich weiß es nicht.

Vielleicht gibt es einige versteckte Prozesse? Aber selbst wenn Sie es als root ausführen, werden keine weiteren Prozesse angezeigt.

BEARBEITEN:

Ich habe nachgesehen top, was (mindestens) zwei weitere Prozesse zeigt:

  230 root      20   0     0    0    0 R 37.4  0.0 107:06.59 md127_raid5                                          
20403 root      35  15     0    0    0 D  9.6  0.0   2:45.78 md127_resync   

Mein mdadm-RAID wird derzeit erneut synchronisiert, was bei der Anzeige bestätigt wurde /proc/mdstat. (Siehe ersten Kommentar.)

Das wirft also die Frage auf: "Warum zeigt htop nicht dieselben Prozesse an wie top?"

Leemes
quelle
topzeigt mehr Prozesse. Der fragliche Prozess gehört zu mdadm, der gerade eine Resynchronisation durchführt, wie ich herausgefunden habe. topzeigt den Vorgang unter dem Namen md127_raid5und md127_resync. Ersteres läuft seit dem Booten des Systems, letzteres seit dem Resync ausgelöst wurde. Das wirft also die Frage auf: "Warum zeigt htop nicht dieselben Prozesse an wie top?"
Leemes

Antworten:

19

Warum zeigt htop nicht dieselben Prozesse an wie top?

Weil htopKernel-Threads standardmäßig ausgeblendet werden, während dies bei top nicht der Fall ist. Sie können diese Option in F2-Einstellungen in ausschalten htop.

  1. Vor:

    Bildbeschreibung hier eingeben

  2. Deaktivieren Sie die Option Kernel-Threads ausblenden und drücken Sie Esc, um den Bildschirm zu verlassen F10.

    Bildbeschreibung hier eingeben

  3. Beachten Sie die neue Anzahl kthr(kthreads) am Cursor und alle neuen k...Prozesse, die angezeigt wurden. Sie können diese wie gewohnt nach CPU usw. sortieren. Abgesehen vom Namen (beginnt mit einem k , hat ein /gegen Ende) können Sie Kernel-Threads auch an ihren sehr niedrigen PIDs erkennen (beachten Sie die 1, 2, 3 ... 17 im Screenshot?)

    Bildbeschreibung hier eingeben

ish
quelle
Vielen Dank. Das wollte ich schon seit Jahren wissen! Und die Lösung ist so einfach ... Danke für die schönen Screenshots :)
leemes
1
Der Hotkey ist H (Umschalt + h).
Glebm
2
@glebm (spät, aber ich denke es lohnt sich hinzuzufügen;)): Der Hotkey zum Anzeigen von Kernel- Threads ist K(Shift + k). Mit der Tastenkombination H(Umschalt + h) werden Benutzerland- Threads angezeigt (oder ausgeblendet, falls bereits angezeigt) .
Henning Kockerbeck