Ich habe einen Heimserver, auf dem manchmal eine hohe CPU-Auslastung von etwa 50 bis 70 Prozent ausgeführt wird.
In htop
meinem 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 htop
die 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?"
top
zeigt mehr Prozesse. Der fragliche Prozess gehört zumdadm
, der gerade eine Resynchronisation durchführt, wie ich herausgefunden habe.top
zeigt den Vorgang unter dem Namenmd127_raid5
undmd127_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?"Antworten:
Weil
htop
Kernel-Threads standardmäßig ausgeblendet werden, während dies bei top nicht der Fall ist. Sie können diese Option in F2-Einstellungen in ausschaltenhtop
.Vor:
Deaktivieren Sie die Option Kernel-Threads ausblenden und drücken Sie Esc, um den Bildschirm zu verlassen
F10
.Beachten Sie die neue Anzahl
kthr
(kthreads) am Cursor und alle neuenk...
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?)quelle
K
(Shift + k). Mit der TastenkombinationH
(Umschalt + h) werden Benutzerland- Threads angezeigt (oder ausgeblendet, falls bereits angezeigt) .